Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Python - 공개 패키지를 이용한 위성 이미지 생성 (pystac_client, odc.stac)

아래와 같은 트윗이 있군요. ^^



쉽게 테스트하기 위해 Jupyer Notebook에서 3개의 패키지를 설치한 후,

!pip install pystac_client
!pip install matplotlib
!pip install odc.stac

이렇게 코딩하면 됩니다.

from pystac_client import Client
from odc.stac import load

client = Client.open("http://earth-search.aws.element84.com/v1")
collection = "sentinel-2-l2a"
tas_box = [146.5, -43.6, 146.7, -43.4]
search = client.search(collections=[collection], bbox=tas_box, datetime="2023-12")

data = load(search.items(), bbox=tas_box, groupby="solar_day", chunks={})
data[["red", "green", "blue"]].isel(time=2).to_array().plot.imshow(robust=True)

그 시점의 호출 부하에 따라 다르겠지만 제 경우에 8초 정도 걸려서야 결과가 나왔습니다.




실습을 위해 순천만 지역을 Google Earth로 방문한 후,

https://earth.google.com/web/@34.93009968,127.50141682,3.33634054a,3009.47610511d,35y,0.92573167h,5.8516359t,0r/data=OgMKATA

대충 위치를 잡았더니 위/경도 데이터가 이렇게 나옵니다.

[좌-하] 34°55'21"N 127°29'30"E
[우-상] 34°56'08"N 127°31'10"E

하지만 이 좌표를 이전의 파이썬 소스코드에 적용하면 안 됩니다. 왜냐하면, 저 구글 어스가 보여주는 좌표계는 DMS (degrees, minutes, seconds) 체계이고, pystac_client 호출 시 넘겨주는 좌표계는 DD (decimal degrees)이기 때문입니다. 따라서, 다음과 같은 페이지를 이용해, (또는 코드로),

GPS Coordinates
; https://www.gps-coordinates.net/

구글 어스의 DMS 값을 DD 값으로 변경해,

[좌-하] 127.49, 34.92
[우-상] 127.51, 34.93

다음과 같이 바꿔서 호출하면,

tas_box = [127.49, 34.92, 127.51, 34.93]

아래와 같은 실행 결과가 나옵니다. ^^

pystac_client_1.png

보는 바와 같이, 이런 유의 코드 실행은 멋있긴 하지만 정작 써먹으려고 하면 (속도도 무척 느려서) 현실성 있게 사용하기 위한 시나리오가 딱히 떠오르진 않습니다. (사업적 마인드가 없어서 그럴 수도 있지만. ^^;)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 1/8/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12506정성태1/25/202123919.NET Framework: 1019. Microsoft.Tye 기본 사용법 소개 [1]
12505정성태1/23/202119179.NET Framework: 1018. .NET Core Kestrel 호스팅 - Web API 추가 [1]파일 다운로드1
12504정성태1/23/202122756.NET Framework: 1017. .NET 5에서의 네트워크 라이브러리 개선 (2) - HTTP/2, HTTP/3 관련 [1]
12503정성태1/21/202121472오류 유형: 696. C# - HttpClient: Requesting HTTP version 2.0 with version policy RequestVersionExact while HTTP/2 is not enabled.
12502정성태1/21/202121998.NET Framework: 1016. .NET Core HttpClient의 HTTP/2 지원파일 다운로드1
12501정성태1/21/202120817.NET Framework: 1015. .NET 5부터 HTTP/1.1, 2.0 선택을 위한 HttpVersionPolicy 동작 방식파일 다운로드1
12500정성태1/21/202122269.NET Framework: 1014. ASP.NET Core(Kestrel)의 HTTP/2 지원 여부파일 다운로드1
12499정성태1/20/202123753.NET Framework: 1013. .NET Core Kestrel 호스팅 - 포트 변경, non-localhost 접속 지원 및 https 등의 설정 변경 [1]파일 다운로드1
12498정성태1/20/202119878.NET Framework: 1012. .NET Core Kestrel 호스팅 - 비주얼 스튜디오의 Kestrel/IIS Express 프로파일 설정
12497정성태1/20/202126053.NET Framework: 1011. C# - OWIN Web API 예제 프로젝트 [1]파일 다운로드2
12496정성태1/19/202121415.NET Framework: 1010. .NET Core 콘솔 프로젝트에서 Kestrel 호스팅 방법 [1]
12495정성태1/19/202125563웹: 40. IIS의 HTTP/2 지원 여부 - h2, h2c [1]
12494정성태1/19/202123085개발 환경 구성: 522. WSL 2 인스턴스와 호스트 측의 Hyper-V에 운영 중인 VM과 네트워크 연결을 하는 방법 [2]
12493정성태1/18/202121473.NET Framework: 1009. .NET 5에서의 네트워크 라이브러리 개선 (1) - HTTP 관련 [1]파일 다운로드1
12492정성태1/17/202119766오류 유형: 695. ASP.NET 0x80131620 Failed to bind to address
12491정성태1/16/202120704.NET Framework: 1008. 배열을 반환하는 C# COM 개체의 메서드를 C++에서 사용 시 메모리 누수 현상 [1]파일 다운로드1
12490정성태1/15/202119221.NET Framework: 1007. C# - foreach에서 열거 변수의 타입을 var로 쓰면 object로 추론하는 문제 [1]파일 다운로드1
12489정성태1/13/202123216.NET Framework: 1006. C# - DB에 저장한 텍스트의 (이모티콘을 비롯해) 유니코드 문자가 '?'로 보인다면? [1]
12488정성태1/13/202120712.NET Framework: 1005. C# - string 타입은 shallow copy일까요? deep copy일까요? [2]파일 다운로드1
12487정성태1/13/202119573.NET Framework: 1004. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법파일 다운로드1
12486정성태1/12/202122919.NET Framework: 1003. x64 환경에서 참조형의 기본 메모리 소비는 얼마나 될까요? [1]
12485정성태1/11/202121546Graphics: 38. C# - OpenCvSharp.VideoWriter에 BMP 파일을 1초씩 출력하는 예제 [2]파일 다운로드1
12484정성태1/9/202124799.NET Framework: 1002. C# - ReadOnlySequence<T> 소개파일 다운로드1
12483정성태1/8/202120482개발 환경 구성: 521. dotPeek - 훌륭한 역어셈블 소스 코드 생성 도구
12482정성태1/8/202122236.NET Framework: 1001. C# - 제네릭 타입/메서드에서 사용 시 경우에 따라 CS8377 컴파일 에러
12481정성태1/7/202122040.NET Framework: 1000. C# - CS8344 컴파일 에러: ref struct 타입의 사용 제한 메서드파일 다운로드1
... [61]  62  63  64  65  66  67  68  69  70  71  72  73  74  75  ...