이 프로젝트는 Supabase PostgreSQL → GeoTIFF → GeoServer ImageMosaic 파이프라인을 자동화하여
최신 기상 데이터를 기반으로 시계열 래스터 레이어를 자동 생성·발행하는 시스템입니다.
- controller/ : 날씨 조회 API
- dto/
- entity/
- repository/
- scheduler/ : 매일 04:05 기상데이터 수집 스케줄러
- service/
- raster/ : 생성된 GeoTIFF, indexer.properties 등
- seoul_boundary.* : 서울시 경계 SHP 파일
- tiff_maker.py : 04:10 TIFF 생성 스크립트
- environment.yml : Conda 환경 정의 파일
저장되는 필드:
- lat, lon
- ts (timestamp)
- temp, rain
- geom (PostGIS Point 자동 생성)
- created_at
Spring Scheduler가 매일 04:05에 OpenWeather API를 호출하여 데이터를 저장합니다.
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 인덱스 갱신
필요 설정 단계:
0. 17 버전 이상 JDK 설치
1. GeoServer 설치
2. ImageMosaic 저장소 생성 후 raster 폴더 연결
3. SLD 스타일 생성 및 적용
4. TIFF 파일 추가 시:
- 기존 인덱스 파일(rasters.\*) 삭제
- GeoServer 재시작 또는 REST Reload
5. Python에서 TIFF 생성 → 자동 반영
- OpenWeather API 호출
- weather_raw 테이블에 시간별 temp, rain 저장
- 새 데이터 조회
- GeoTIFF 생성
- raster 폴더 저장
- 인덱스 갱신
DB → TIFF → GeoServer 레이어로 최신 기상 데이터가 자동 발행됩니다.
conda env create -f environment.yml
conda activate weather-env
./gradlew bootRun
python tiff_maker.py
- environment.yml : Python TIFF 생성 환경 설정
- .env : Spring/Python 공통 환경 변수 (Git에는 포함되지 않음)