Example #1
0
    def test(self):
        iid = 'LANDSAT/LC08/C01/T1_SR'
        collection = ee.ImageCollection(iid)
        date = '2017-03-08'
        p_cloud = ee.Geometry.Point([-65.7539, -25.0327])
        p_clear = ee.Geometry.Point([-66.034, -24.9512])

        image = getimage(collection, date, area)

        # masked = cloud_mask.cfmask_bits(image)
        masked = cloud_mask.landsatSR()(image)
        vals = get_value(masked, p_cloud, 30, 'client')
        show(iid, image, masked, bands8, 0, 5000)

        self.assertEqual(vals["B1"], None)
Example #2
0
    def test(self):
        iid = 'LANDSAT/LE07/C01/T1_SR'
        collection = ee.ImageCollection(iid)
        date = '2010-03-13'
        p_cloud = ee.Geometry.Point([-65.5784, -24.773])
        p_clear = ee.Geometry.Point([-65.599, -24.9313])

        image = getimage(collection, date, area)

        # masked = cloud_mask.cfmask_bits(image)
        masked = cloud_mask.landsatSR()(image)
        vals = get_value(masked, p_cloud, 30, 'client')
        show(iid, image, masked, bands457, 0, 5000)

        self.assertEqual(vals["B1"], None)
Example #3
0
    def test(self):
        iid = 'LANDSAT/LT04/C01/T1_SR'
        collection = ee.ImageCollection(iid)
        date = '1989-07-25'
        p_cloud = ee.Geometry.Point([-65.506, -24.9263])
        p_clear = ee.Geometry.Point([-64.6133, -24.4522])

        image = getimage(collection, date, area)

        # masked = cloud_mask.cfmask_bits(image)
        masked = cloud_mask.landsatSR()(image)
        vals = get_value(masked, p_cloud, 30, 'client')

        show(iid, image, masked, bands457, 0, 5000)

        self.assertEqual(vals["B1"], None)
Example #4
0
    def Landsat8USGS(cls):
        copy = deepcopy(Collection.Landsat8TOA())  # L8 TOA
        copy_usgs = deepcopy(Collection.Landsat5USGS())  # L5 USGS
        copy.kws["process"] = copy_usgs.process
        copy.kws["max"] = copy_usgs.max
        copy.kws["fclouds"] = cld.landsatSR()
        # copy.kws["ATM_OP"] = copy_usgs.ATM_OP
        copy.kws["equiv"] = "LANDSAT/LC8_L1T_TOA_FMASK"
        copy.kws["bandscale"] = copy.bandscale
        # copy.kws["col_id"] = 12
        copy.kws["short"] = "L8USGS"
        copy.kws["clouds_band"] = "pixel_qa"
        obj = cls(**copy.kws)
        obj.threshold = {
            'NIR': {
                'min': 700,
                'max': 4500
            },
            'RED': {
                'min': 50,
                'max': 2000
            },
            'SWIR': {
                'min': 400,
                'max': 3500
            },
            'SWIR2': {
                'min': 150,
                'max': 2800
            },
            'BLUE': {
                'min': 0,
                'max': 1000
            },
            'GREEN': {
                'min': 100,
                'max': 1500
            }
        }

        # CAMBIOS
        # CHANGE
        # obj.ID = "LANDSAT/LC08/C01/T1_SR"
        obj.ID = IDS[obj.short]

        return obj
Example #5
0
    def Landsat7USGS(cls):
        copy = deepcopy(Collection.Landsat7TOA())  # L5 USGS
        copy.kws["equiv"] = "LANDSAT/LE7_L1T_TOA_FMASK"
        copy.kws["process"] = "SR"
        copy.kws["max"] = 10000
        copy.kws["fclouds"] = cld.landsatSR()
        copy.kws["ATM_OP"] = "sr_atmos_opacity"
        copy.kws["clouds_band"] = "pixel_qa"
        # copy.kws["col_id"] = 9
        copy.kws["short"] = "L7USGS"
        obj = cls(**copy.kws)
        obj.threshold = {
            'NIR': {
                'min': 700,
                'max': 4500
            },
            'RED': {
                'min': 50,
                'max': 2000
            },
            'SWIR': {
                'min': 400,
                'max': 3500
            },
            'SWIR2': {
                'min': 150,
                'max': 2800
            },
            'BLUE': {
                'min': 0,
                'max': 1000
            },
            'GREEN': {
                'min': 100,
                'max': 1500
            }
        }

        # CAMBIO
        # CHANGE
        # obj.ID = "LANDSAT/LE07/C01/T1_SR"
        obj.ID = IDS[obj.short]

        return obj
Example #6
0
    def Landsat4USGS(cls):
        copy = deepcopy(Collection.Landsat4TOA())
        # copy.kws["col_id"] = 16
        copy.kws["short"] = "L4USGS"
        copy.kws["max"] = 10000
        copy.kws["fclouds"] = cld.landsatSR()
        copy.kws["ATM_OP"] = "sr_atmos_opacity"
        copy.kws["equiv"] = "LANDSAT/LT4_L1T_TOA_FMASK"
        copy.kws["clouds_band"] = "pixel_qa"
        obj = cls(**copy.kws)

        # CAMBIO
        # obj.ID = "LANDSAT/LT04/C01/T1_SR"
        obj.ID = IDS[obj.short]
        obj.threshold = {
            'NIR': {
                'min': 700,
                'max': 4500
            },
            'RED': {
                'min': 50,
                'max': 2000
            },
            'SWIR': {
                'min': 400,
                'max': 3500
            },
            'SWIR2': {
                'min': 150,
                'max': 2800
            },
            'BLUE': {
                'min': 0,
                'max': 1000
            },
            'GREEN': {
                'min': 100,
                'max': 1500
            }
        }
        return obj
Example #7
0
#reading CSV
dataset = pd.read_csv('dataset.csv')

#dataset=pd.read_csv(r'C:\Users\nsuar\Google Drive\local_testing_files\dataset.csv')

print("dataset read succesfully")

#defining image
startDate = '2020-01-01'
endDate = '2020-12-31'
landsat = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")
# filter date
landsat = landsat.filterDate(startDate, endDate)
#applying cloud masking
landsat_masked = landsat.map(cloud_mask.landsatSR(['cloud']))
landsat_masked = landsat_masked.select(
    ["B1", "B2", "B3", "B4", "B5", "B6", "B7"])

# selecting bands for unmasked version
landsat = landsat.select(["B1", "B2", "B3", "B4", "B5", "B6", "B7"])

#list to store the task objects
tasks = []

#running the tasks to get the imagery
N = len(dataset)
batch_size = 100

for j in range(math.ceil(N / batch_size)):
    #determining batch lower and upper indexes, given batch size
import ee
import numpy as np
import geetools
from geetools import ui, cloud_mask
import os, datetime
import pandas as pd
import itertools
import tensorflow as tf

cloud_mask_landsatSR = cloud_mask.landsatSR()
cloud_mask_sentinel2 = cloud_mask.sentinel2()

# tfrecord helper functions ----------------------------------------------------
# https://stackoverflow.com/questions/52324515/passing-multiple-inputs-to-keras-model-from-tf-dataset-api
# https://www.tensorflow.org/tutorials/load_data/tfrecord


def _bytes_feature(value):
    """Returns a bytes_list from a string / byte."""
    # If the value is an eager tensor BytesList won't unpack a string from an EagerTensor.
    if isinstance(value, type(tf.constant(0))):
        value = value.numpy()
    return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))


def _float_feature(value):
    """Returns a float_list from a float / double."""
    return tf.train.Feature(float_list=tf.train.FloatList(value=[value]))


def _int64_feature(value):