Skip to content

Latest commit

Β 

History

History
118 lines (89 loc) Β· 2.44 KB

File metadata and controls

118 lines (89 loc) Β· 2.44 KB

WeatherMap ν”„λ‘œμ νŠΈ

이 ν”„λ‘œμ νŠΈλŠ” Supabase PostgreSQL β†’ GeoTIFF β†’ GeoServer ImageMosaic νŒŒμ΄ν”„λΌμΈμ„ μžλ™ν™”ν•˜μ—¬
μ΅œμ‹  기상 데이터λ₯Ό 기반으둜 μ‹œκ³„μ—΄ λž˜μŠ€ν„° λ ˆμ΄μ–΄λ₯Ό μžλ™ μƒμ„±Β·λ°œν–‰ν•˜λŠ” μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.


1. ν”„λ‘œμ νŠΈ ꡬ쑰

Java (Spring Boot)

  • controller/ : 날씨 쑰회 API
  • dto/
  • entity/
  • repository/
  • scheduler/ : 맀일 04:05 기상데이터 μˆ˜μ§‘ μŠ€μΌ€μ€„λŸ¬
  • service/

Python

  • raster/ : μƒμ„±λœ GeoTIFF, indexer.properties λ“±
  • seoul_boundary.* : μ„œμšΈμ‹œ 경계 SHP 파일
  • tiff_maker.py : 04:10 TIFF 생성 슀크립트
  • environment.yml : Conda ν™˜κ²½ μ •μ˜ 파일

2. μ£Όμš” ꡬ성 μš”μ†Œ

(1) Supabase PostgreSQL (weather_raw ν…Œμ΄λΈ”)

μ €μž₯λ˜λŠ” ν•„λ“œ:

  • lat, lon
  • ts (timestamp)
  • temp, rain
  • geom (PostGIS Point μžλ™ 생성)
  • created_at

Spring Schedulerκ°€ 맀일 04:05에 OpenWeather APIλ₯Ό ν˜ΈμΆœν•˜μ—¬ 데이터λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.


(2) Python GeoTIFF 생성 λͺ¨λ“ˆ

Conda ν™˜κ²½ μ„€μ •

conda env create -f environment.yml
conda activate weather-env

μ‹€ν–‰

cd Python
python tiff_maker.py

μˆ˜ν–‰ μ—­ν• 

  • Supabase weather_raw 데이터 쑰회
  • IDW 보간 기반 μ˜¨λ„ 격자 생성
  • μ„œμšΈμ‹œ 경계(shp)둜 λ§ˆμŠ€ν‚Ή
  • temp_YYYY-MM-DD_HH.tif ν˜•μ‹ GeoTIFF 생성
  • ImageMosaic 인덱슀 κ°±μ‹ 

(3) GeoServer (ImageMosaic)

ν•„μš” μ„€μ • 단계:
0. 17 버전 이상 JDK μ„€μΉ˜
1. GeoServer μ„€μΉ˜
2. ImageMosaic μ €μž₯μ†Œ 생성 ν›„ raster 폴더 μ—°κ²°
3. SLD μŠ€νƒ€μΌ 생성 및 적용
4. TIFF 파일 μΆ”κ°€ μ‹œ:
    - κΈ°μ‘΄ 인덱슀 파일(rasters.\*) μ‚­μ œ
    - GeoServer μž¬μ‹œμž‘ λ˜λŠ” REST Reload
5. Pythonμ—μ„œ TIFF 생성 β†’ μžλ™ 반영

3. μžλ™ν™” 흐름 μš”μ•½

β‘  Spring Boot (04:05)

  • OpenWeather API 호좜
  • weather_raw ν…Œμ΄λΈ”μ— μ‹œκ°„λ³„ temp, rain μ €μž₯

β‘‘ Python (04:10)

  • μƒˆ 데이터 쑰회
  • GeoTIFF 생성
  • raster 폴더 μ €μž₯
  • 인덱슀 κ°±μ‹ 

κ²°κ³Ό

DB β†’ TIFF β†’ GeoServer λ ˆμ΄μ–΄λ‘œ μ΅œμ‹  기상 데이터가 μžλ™ λ°œν–‰λ©λ‹ˆλ‹€.


4. μ‹€ν–‰ μˆœμ„œ

1) Conda ν™˜κ²½ ꡬ성

conda env create -f environment.yml
conda activate weather-env

2) Spring Boot μ‹€ν–‰

./gradlew bootRun

3) Python TIFF λͺ¨λ“ˆ μ‹€ν–‰

python tiff_maker.py

5. ν™˜κ²½ 파일

  • environment.yml : Python TIFF 생성 ν™˜κ²½ μ„€μ •
  • .env : Spring/Python 곡톡 ν™˜κ²½ λ³€μˆ˜ (Gitμ—λŠ” ν¬ν•¨λ˜μ§€ μ•ŠμŒ)