0

When I export the big images in Google Drive, Google Earth Engine is supposed to tile them automatically but they don't even appear in my drive.

What is happening?

Here is my code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Created on Tue Sep 28 14:19:15 2021

@author: karas
"""


import geemap
import geetools
import os
import argparse
from cloud_mask import *
import ee

# Download filtered data and unite them with cloud data
def filtering(dataset, sdate, edate, aoi, cloud):
    
    # # Area of Interest
    # aoi = ee.Geometry.Rectangle([float(aoi[0]), float(aoi[1]), float(aoi[2]), float(aoi[3])])
    aoi = ee.Geometry.Point(float(aoi[0]), float(aoi[1]))
    # Getting the dataset
    dataset = ee.ImageCollection(dataset)\
        .filterDate(sdate, edate)\
        .filterBounds(aoi)\
        .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', cloud))\

    
    # Import and filter cloud masks for corresponding images
    s2_cloudless_col = (ee.ImageCollection('COPERNICUS/S2_CLOUD_PROBABILITY')
        .filterBounds(aoi)
        .filterDate(sdate, edate))
    
    # Join the filtered s2cloudless collection to the SR collection by the 'system:index' property.
    return ee.ImageCollection(ee.Join.saveFirst('s2cloudless').apply(**{
        'primary': dataset,
        'secondary': s2_cloudless_col,
        'condition': ee.Filter.equals(**{
            'leftField': 'system:index',
            'rightField': 'system:index'
        })
    }))




# Initialize the library.
ee.Initialize()
ee.Authenticate()

# # Creating the arguments 
# parser = argparse.ArgumentParser(description = 'Downloading parameters')
# parser.add_argument('--dataset', type = str,
#                     help = 'Dataset to be used')
# parser.add_argument('--sdate', type = str,
#                     help = 'Start date')
# parser.add_argument('--edate', type = str,
#                     help = 'End date')
# parser.add_argument('--aoi', nargs = '+',
#                     help = 'Area of Interest with geographical coordinates')
# parser.add_argument('--out_path', type = str,
#                     help = 'Path to save images')
# parser.add_argument('--cloud_cov', type = int,
#                     help = 'Cloud coverage')
# args = parser.parse_args()

# Creating a list of bands
bands = ['B2', 'B3', 'B4', 'B8', 'SCL']

# Getting the dataset
# dataset = filtering(args.dataset,
#                     args.sdate,
#                     args.edate,
#                     args.aoi,
#                     # rectROI,
#                     args.cloud_cov).select(bands)

dataset = filtering('COPERNICUS/S2_SR',
                    '2021-06-01',
                    '2021-09-01',
                    [23, 40],
                    10).select(bands)

# Add cloud and cloud shadow component bands to each image and then apply the mask to each image
# dataset_cloudless = (dataset.map(add_cld_shdw_mask)
#                               .map(apply_cld_shdw_mask)
#                               )

region = ee.Geometry.Polygon(dataset.first().geometry().bounds().getInfo()['coordinates'])

task = ee.batch.Export.image.toDrive(dataset.first(),\
                              description = '256x256 tile',\
                              scale = 30,\
                              maxPixels=int(1e13),\
                              region = region.getInfo()['coordinates'],\
                              fileFormat = 'GeoTIFF',
                              folder = 'x',
                              )
task.start()
print(task.status())

1 Answer 1

0

You control the tiling with the fileDimensions property in Export.image.toDrive(). According to the docs:

The dimensions in pixels of each image file, if the image is too large to fit in a single file. May specify a single number to indicate a square shape, or an array of two dimensions to indicate (width,height). Note that the image will still be clipped to the overall image dimensions. Must be a multiple of shardSize.

1
  • The images were too big to be downloaded and tiled. Google Earth Engine is not the appropriate platform for processing satellite imagery on full resolution. Instead, I used sentinelsat library in python
    – Karantai
    Jun 5, 2022 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.