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)
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)
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)
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
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
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
#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):