def cli(ctx,
        startdate,
        enddate,
        directory):

    """
    This script will download satellite imagery from Google Earth Engine.
    The user must specify a spatial data file containing points, and
    and imagery collection from the list of collections below. The
    application will then connect to earth engine and download imagery patches
    that match the point coordinates and request specifications.

    List of Imagery Collections:\n
    Landsat8:      Landsat 8 imagery at 30m resolution\n
    Landsat7:      Landsat 7 imagery at 30m resolution\n


    Request types include:\n
    SimplePointRequest:      Download raw image patches from specified\n
                             collection.\n

    CompositedPointRequest:  Download image composites from specified\n
                             collection.\n

    """
    
    ctx.obj['directory'] = directory
    ctx.obj['startdate'] = ValidationLogic.isDateString(startdate)
    ctx.obj['enddate'] = ValidationLogic.isDateString(enddate)
    def is_date_in_range(self, candidate):
        candidate = ValidationLogic.is_date_string(candidate)

        if (self.startdate <= candidate <= self.enddate):
            return True
        else:
            return False
def SimplePointImageryRequest(ctx,
                              collection,
                              filename,
                              radius):

    """Download raw point imagery patches from EE collection."""


    ctx.obj['radius'] = ValidationLogic.isPositive(radius)
    ctx.obj['collection'] = imgCollections.get(collection)
    settings = ctx.obj

    request_queue = build_queue(filename, settings)
    process_queue(request_queue)
    download_queue = download_queue(process_queue)
def SimplePointImageryRequest(ctx,
                              collection,
                              filename,
                              radius):

    """Download raw point imagery patches from EE collection."""

    ctx.obj['filename'] = filename
    ctx.obj['radius'] = ValidationLogic.isPositive(radius)
    ctx.obj['collection'] = collection
    ctx.obj['statusList'] = PointImageryRequestStatusCodes
    settings = ctx.obj

    request = build_request(BuilderPointImageryRequest, settings)
    InvokerPointProcessorSimplePointImageryRequest(request)
    InvokerImageryDownloader(request)
 def set_longitude(self, candidate):
     self.longitude = ValidationLogic.isNumeric(candidate)
Ejemplo n.º 6
0
 def __init__(self, request, successor=None):
     self.request = request
     self.successor = ValidationLogic.isSuccessor(successor)
Ejemplo n.º 7
0
 def add_band(self, candidate):
     self.bands.append(ValidationLogic.isstring(candidate))
 def set_enddate(self, candidate):
     self.enddate = ValidationLogic.isDatetimeDate(candidate)
 def set_enddate(self, candidate):
     self.enddate = ValidationLogic.is_date_string(candidate)
 def set_startdate(self, candidate):
     self.startdate = ValidationLogic.is_date_string(candidate)
 def set_bands(self, candidate):
     self.bands = ValidationLogic.validate_list_of_string(candidate)
 def __init__(self, id, bands, startdate, enddate, resolution):
     self.id = ValidationLogic.isString(id)
     self.bands = ValidationLogic.isListOfStrings(bands)
     self.startdate = ValidationLogic.isDateString(startdate)
     self.enddate = ValidationLogic.isDateString(enddate)
     self.resolution = ValidationLogic.isPositive(resolution)
Ejemplo n.º 13
0
 def set_radius(self, candidate):
     self.radius = ValidationLogic.isPositive(candidate)
Ejemplo n.º 14
0
    def set_data(self, candidate):

        self.geodataframe = ValidationLogic.isValidSpatialFile(candidate)
        candidate_epsg = self.geodataframe.crs['init'].replace('epsg:', '')
        self.set_epsg(candidate_epsg)
Ejemplo n.º 15
0
 def set_status(self, candidate):
     self.status = ValidationLogic.isInEnum(PointImageryRequestStatusCodes,
                                            candidate)
 def set_epsg(self, candidate):
     self.epsg = ValidationLogic.isPositive(candidate)
 def set_startdate(self, candidate):
     self.startdate = ValidationLogic.isDatetimeDate(candidate)
 def set_resolution(self, candidate):
     self.resolution = ValidationLogic.isPositive(candidate)
 def set_download_url(self, candidate):
     self.download_url = ValidationLogic.isURL(candidate)
 def is_band_in_bands(self, candidate):
     if (ValidationLogic.isstring(candidate) in self.bands):
         return True
     else:
         return False