Sentinel2로 위성 이미지 타일 만들기 (1) 위성 이미지 다운로드편
우선 이 글은 위성 이미지를 얻은 파이썬 라이브러리sentinelsat에 대해 설명할 것이다.
sentinelsat
로 위성 이미지를 다운로드해 보세요.sentinelsat
조건에 부합되는 위성 이미지를 조회하는 방법을 얻습니다.sentinelsat로 위성 이미지 다운로드
1. Copernicus Open Access Hub를 사용하여 사용자 등록
우선, 위성 이미지를 다운로드하기 위해 Copernicus Open Access Hub를 방문하여 사용자 등록을 합니다.사용자 등록을 하려면 "Sign up"을 클릭하십시오.
https://scihub.copernicus.eu/dhus/#/home
sentinelsat
사용자 이름과 비밀번호를 지정하여 위성 이미지를 다운로드합니다. 잊지 마십시오.Sentinel2 플랫폼 정보
참고로 Sentinel2 이미지를 다운로드할 수 있는 플랫폼이 많은데esa 운영하는 플랫폼은'Copernicus Open Access Hub'입니다.
"Sentinel Hub"등 민영기업이 운영하는 유사한 플랫폼이 있기 때문에 틀리지 않도록 주의하세요.
2.sentinelsat 위성 이미지 다운로드
위성 이미지를 다운로드하는 데 필요한 라이브러리를 설치하다.
$ pip install sentinelsat
$ pip install matplotlib
$ pip install shapely
main.py
를 만들고 필요한 라이브러리를 가져오십시오.# manin.py
import os
from sentinelsat import SentinelAPI, read_geojson, geojson_to_wkt
import matplotlib.pyplot as plt
from shapely.geometry import MultiPolygon, Polygon
2.1. 위성 이미지를 가져올 GeoJSON 만들기
위성 이미지를 가져올 범위의 위도 경도를 가져와 GeoJSON을 만듭니다.
귄 주립 대학에서 공개한 도구로 위도 경도를 얻다.
https://www.keene.edu/campus/maps/tool/
GeoJSON을 생성합니다.
# manin.py
# 衛星画像取得する範囲を指定
AREA = [
[
139.0240751,
36.1879383
],
[
139.0570341,
34.7880413
],
[
140.8093534,
34.8060848
],
[
140.8642851,
36.1591156
],
[
139.0240751,
36.1879383
]
]
from geojson import Polygon
m=Polygon([AREA])
# GeoJSON ファイルを出力
object_name = 'Tokyo_Bay'
import json
with open(str(object_name) +'.geojson', 'w') as f:
json.dump(m, f)
footprint_geojson = geojson_to_wkt(read_geojson(str(object_name) +'.geojson'))
2.2. 위성 이미지 다운로드
SentinelAPI.query
에 지정된 매개 변수로 위성 이미지를 다운로드할 수 있습니다.# manin.py
# Copernicus Open Access Hub のユーザー情報を設定
user = '自分のユーザー名を貼り付け'
password = '自分のパスワードを貼り付け'
api = SentinelAPI(user, password, 'https://scihub.copernicus.eu/dhus')
# 衛星画像を取得する条件を指定
products = api.query(footprint_geojson,
date = ('20200608', '20210608'), #取得希望期間の入力
platformname = 'Sentinel-2',
processinglevel = 'Level-2A',
cloudcoverpercentage = (0,100)) #被雲率(0%〜100%)
# 衛星画像のメタデータ
product = list(products.values())[0]
# ダウンロード
api.download(product['uuid'])
위의 코드를 main.py
에 추가하고 터미널에서 다음 작업을 수행하면 다운로드가 시작됩니다.$ python main.py
질의 지정 방법
질의를 작성하려면
SentinelAPI.query
에서 조건을 지정할 수 있습니다.매개 변수
date: 검색 기간
yyyyMMdd
yyyy-MM-ddThh:mm:ss.SSSZ (ISO-8601)
yyyy-MM-ddThh:mm:ssZ
NOW
NOW-<n>DAY(S) (or HOUR(S), MONTH(S), etc.)
NOW+<n>DAY(S)
yyyy-MM-ddThh:mm:ssZ-<n>DAY(S)
NOW/DAY (or HOUR, MONTH etc.)
https://sentinelsat.readthedocs.io/en/stable/api_reference.html#sentinelsat.sentinel.SentinelAPI.query
processinglevel
쿼리 매개변수에는
processinglevel
가 있습니다.귀에 익은 단어지만 위성 영상의 처리 수준이다.이번에'레벨-2A'를 지정했습니다.
여기서 획득한 Sentinel-2의 제품 등급은 L1-2A를 요구합니다.
이것은 위성 영상의 대위가 끝난 후의 L-1C 수준에서 대기의 파동(moya)을 수정한 영상이다.
API를 사용하여 인공위성(Sentinel-2)의 관측 이미지를 자동으로 가져옵니다. - Qiita 참조
자세한 내용은 위성 이미지의 처리 수준을 알고 싶으면 아래를 참고하십시오.
총결산
이번에는 위성 이미지를 다운로드해 보았다.또한 속편으로 지정된 기간 동안 구름이 가장 적은 이미지를 얻는 방법과 다운로드한 이미지를 타일로 바꾸는 방법을 쓰고 싶습니다.
참고 자료
Reference
이 문제에 관하여(Sentinel2로 위성 이미지 타일 만들기 (1) 위성 이미지 다운로드편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naogify/items/9e4dad5df62c642724a8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)