2

필자의 논문을 다운로드하려면 Landsat 이미지를 다운로드해야합니다. 내 문제는 간단하지만 JavaScript에 대한 단서가 없으므로 문서가 충분히 도움이되지 않습니다. 컬렉션을 내 지역 및 기간으로 필터링했으며 모든 이미지를 별도로 드라이브로 내보내려고합니다. 컬렉션 예 :Google 어스 엔진 이미지 컬렉션의 모든 이미지 내보내기 (Google Earth Engine API)

var surfaceReflectanceL5 = ee.ImageCollection('LANDSAT/LT5_SR'); 
var dateSR5=surfaceReflectanceL5.filterDate('1984-01-01', '1985-01-01'); 
var prSR5=dateSR5.filter(ee.Filter.eq('wrs_path', 182)) 
        .filter(ee.Filter.eq('wrs_row', 35)); 

하나의 이미지를 수출하는 코드는 다음과 같습니다

Export.image.toDrive({ 
    image: image1 //example, var image1='Landsat/....' 
    description: 'L51984_1', 
    scale: 30, 
}); 
나는 모든 이미지를 내보낼 컬렉션을 반복 할 수있는 방법

? map() 함수를 사용하는 것이 답 인 것 같습니다.

prSR5.map(Export.image.toDrive({ 
    image: image, 
    description: 'L51984', 
    scale: 30, 
})); 

문제는, (이미지에 맞게 올바른 이미지 (즉, 먼저 첫번째 이미지 등 다음 2, 같은 'thisImage()')와 설명에 대한 이미지 매개 변수를 설정하는 방법을 'L51984_2''L51984_1'입니다. ..).

미리 감사드립니다.

+0

이미지를 다운로드하는 중이라면 [earthexplorer] (https://earthexplorer.usgs.gov/)와 같은보다 전통적인 소스를 사용하는 것이 좋습니다. 이렇게하면 'JavaScript'및 잠재적으로 더 빠르고 더 편리 할 수도 있습니다. – Val

+0

답변 해 주셔서 감사합니다. 지구 탐색기에서 주문을 시도했으나 주문이 오래 걸릴 것입니다. (백 로그에 200,000 개의 이미지가있는 한 달을 가정합니다 ...) – DiNik

답변

3

비슷한 작업을 수행하는 함수를 만들었습니다. 내가 만든 이런 도구의 무리에서 볼 수 있습니다 : https://github.com/gee-community/gee_tools 여기

코드입니다 : 나는 그것을 많이했지만, 내가 만든 시험 몇 일을하지 않은

/* 
* Author: Rodrigo E. Principe 
* License: Apache 2.0 

PURPOSE: 
This function Exports all images from one Collection 
PARAMETERS: 
col = collection that contains the images (ImageCollection) (not optional) 
folder = the folder where images will go (str) (not optional) 
scale = the pixel's scale (int) (optional) (defaults to 1000) (for Landsat use 30) 
type = data type of the exported image (str) (option: "float", "byte", "int", "double") (optional) (defaults to "float") 
nimg = number of images of the collection (can be greater than the actual number) (int) (optional) (defaults to 500) 
maxPixels = max number of pixels to include in the image (int) (optional) (defults to 1e10) 
region = the region where images are on (Geometry.LinearRing or Geometry.Polygon) (optional) (defaults to the image footprint) 
Be careful with the region parameter. If the collection has images 
in different regions I suggest not to set that parameter 
EXAMPLE: 
ExportCol(myLandsatCol, "Landsat_imgs", 30) 
*/ 

var ExportCol = function(col, folder, scale, type, 
         nimg, maxPixels, region) { 
    type = type || "float"; 
    nimg = nimg || 500; 
    scale = scale || 1000; 
    maxPixels = maxPixels || 1e10; 

    var colList = col.toList(nimg); 
    var n = colList.size().getInfo(); 

    for (var i = 0; i < n; i++) { 
     var img = ee.Image(colList.get(i)); 
     var id = img.id().getInfo(); 
     region = region || img.geometry().bounds().getInfo()["coordinates"]; 

     var imgtype = {"float":img.toFloat(), 
        "byte":img.toByte(), 
        "int":img.toInt(), 
        "double":img.toDouble() 
        } 

     Export.image.toDrive({ 
     image:imgtype[type], 
     description: id, 
     folder: folder, 
     fileNamePrefix: id, 
     region: region, 
     scale: scale, 
     maxPixels: maxPixels}) 
    } 
    } 

, 예 :

var col = ee.ImageCollection("LEDAPS/LE7_L1T_SR").filterDate("2002-01-01","2002-01-03"); 
ExportCol(col, "test_Export_col", 30); 

여기에 의견을 제시 할 수있을뿐만 아니라 github에 게시 할 수 있습니다.