Skip to content

Instantly share code, notes, and snippets.

@lakshmanok
Created October 16, 2016 02:42
Show Gist options
  • Save lakshmanok/05de98f5da7fc6ed3b8bbb35ebc0c0b6 to your computer and use it in GitHub Desktop.
Save lakshmanok/05de98f5da7fc6ed3b8bbb35ebc0c0b6 to your computer and use it in GitHub Desktop.
filtering landsat scenes
class SceneInfo:
def __init__ (self, line):
try:
self.SCENE_ID, self.SPACECRAFT_ID, self.SENSOR_ID, self.DATE_ACQUIRED, self.COLLECTION_NUMBER, self.COLLECTION_CATEGORY,self.DATA_TYPE, self.WRS_PATH, self.WRS_ROW, self.CLOUD_COVER, self.NORTH_LAT, self.SOUTH_LAT, self.WEST_LON, self.EAST_LON, self.TOTAL_SIZE, self.BASE_URL = line.split(',')
self.DATE_ACQUIRED = datetime.datetime.strptime(self.DATE_ACQUIRED, '%Y-%m-%d')
self.NORTH_LAT = float(self.NORTH_LAT)
self.SOUTH_LAT = float(self.SOUTH_LAT)
self.WEST_LON = float(self.WEST_LON)
self.EAST_LON = float(self.EAST_LON)
self.CLOUD_COVER = float(self.CLOUD_COVER)
except:
print "WARNING! format error on {", line, "}"
def contains(self, lat, lon):
return (lat > self.SOUTH_LAT) and (lat < self.NORTH_LAT) and (lon > self.WEST_LON) and (lon < self.EAST_LON)
def filterScenes(line, lat, lon):
scene = SceneInfo(line)
if scene.contains(lat, lon) and scene.DATE_ACQUIRED.day > 10 and scene.DATE_ACQUIRED.day < 20:
yrmon = '{0}-{1}'.format(scene.DATE_ACQUIRED.year, scene.DATE_ACQUIRED.month)
yield (yrmon, scene)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment