Google 어스 엔진을 처음 사용하고 Google 어스 엔진 파이썬 API를 사용하는 방법을 이해하려고했습니다. 이미지 컬렉션을 만들 수는 있지만 getdownloadurl()
메서드는 개별 이미지에서만 작동합니다. 따라서 컬렉션의 모든 이미지를 반복하고 다운로드하는 방법을 이해하려고합니다.Google 어스 엔진 python api에서 이미지 컬렉션의 각 이미지를 반복하고 다운로드하는 방법
여기 내 기본 코드입니다. 내가하고있는 다른 일에 대해 아주 자세히 설명했다.
import ee
ee.Initialize()
col = ee.ImageCollection('LANDSAT/LC08/C01/T1')
col.filterDate('1/1/2015', '4/30/2015')
pt = ee.Geometry.Point([-2.40986111110000012, 26.76033333330000019])
buff = pt.buffer(300)
region = ee.Feature.bounds(buff)
col.filterBounds(region)
그래서 Landsat 컬렉션을 가져 와서 날짜와 버퍼 구조로 필터링했습니다. 그래서 저는 컬렉션에 7-8 이미지 같은 것을 가져야합니다 (모든 밴드들과 함께).
그러나 컬렉션에 대한 작업을 반복 할 수 없었습니다. 예를 들어
는 :
for i in col:
print(i)
오류가 나는 개별 이미지에 액세스 할 수있는 방법, 컬렉션 반복 가능한 아닙니다 그래서 경우
TypeError: 'ImageCollection' object is not iterable
을 나타냅니다? 나는 이미지가 일단
, 나는 당신이 가능하게 이미지를 가져 와서 목록에 추가하는 기능 ee.ImageCollection.iterate()
를 사용할 수있는 일반적인
path = col[i].getDownloadUrl({
'scale': 30,
'crs': 'EPSG:4326',
'region': region
})
네, iterate 메소드에 대한 언급을 보았습니다. 나는 그 장면을 줄 것이다. 제안에 감사드립니다. – krishnab
두 가지 이유로이 방법을 피해야합니다. 하나는 클라이언트 ('getDownloadURL()')와 서버 ('iterate()') 함수 ([참조] (https://developers.google.com/earth-engine/debugging#avoid-mixing)를 혼합하는 것을 피하는 것이 좋습니다. -client-functions-and-objects-with-server-functions-and-objects))를 사용합니다. 두 가지,'getDownloadURL()'은 색다른 데, 때때로 다운로드가 손상 될 수 있습니다. –
@NicholasClinton : 감사합니다. 참조에 따르면'getDownloadURL()'은'ee.Image()'객체의 메소드이므로 _server_ 함수입니다. 'iterate()'와'list.append()'에 대한 호출로 전달되는 파이썬리스트를 의미 했습니까? – mhawke