# hundreds = mrgeo.load_image("all-hundreds-save") # hundreds.export("/data/export/100-export-test", singleFile=True) # # slope = mrgeo.load_image("santiago-aster") # slope.export("/data/export/santiago-aster", singleFile=True) # hundreds.export("/data/export/hundreds-export-test", singleFile=True) # sub = hundreds + ones # # sub.export("/data/export/101-export-test", singleFile=True) # zen = 30.0 * 0.0174532925 # sun 30 deg above the horizon # sunaz = 270.0 * 0.0174532925 # sun from 270 deg (west) # # coszen = math.cos(zen) # sinzen = math.sin(zen) # # slope = elevation.slope() # aspect = elevation.aspect() # # hill = 255 * ((coszen * slope.cos()) + (sinzen * slope.sin() * (sunaz - aspect).cos())) # # "hill = 255.0 * ((coszen * cos(sl)) + (sinzen * sin(sl) * cos(sunaz - as)))" # # hill.export("/data/export/hillshade-test", singleFile=True) mrgeo.stop() print("***** Done *****")
def main(argv): root = '' month = -1 year = -1 output_postfix = '' try: opts, args = getopt.getopt(argv, "hr:m:y:o:", ["root=", "month=,year=,output-postfix="]) except getopt.GetoptError: print 'multi-landsat.py -r <rootdir> -m <monthnum> -y <year> -o <output-postfix>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'multi-landsat.py -r <rootdir> -m <monthnum> -y <year> -o <output-postfix>' sys.exit() elif opt in ("-r", "--root"): root = arg elif opt in ("-m", "--month"): month = int(arg) elif opt in ("-y", "--year"): year = int(arg) elif opt in ("-o", "--output-postfix"): output_postfix = arg print 'Root is %s' % (root) print 'Month is %d' % (month) print 'Year is %d' % (year) metadata = load_all_metadata(root) # Filter the metadata to find the most recent imagery for each scene. # It is assumed that the root directory only contains scenes we are # interested in. filtered_metadata = {} for md in metadata: acqdate = parse( md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["DATE_ACQUIRED"]) if acqdate.month == month and acqdate.year == year: wrs_path = int( md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_PATH"]) wrs_row = int( md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_ROW"]) key = "%03d%03d" % (wrs_path, wrs_row) if filtered_metadata.get(key) is None: filtered_metadata[key] = md else: existing_acq_date = parse( filtered_metadata[key]["L1_METADATA_FILE"] ["PRODUCT_METADATA"]["DATE_ACQUIRED"]) if acqdate > existing_acq_date: filtered_metadata[key] = md for key in filtered_metadata: print "Processing scene at path %s, row %s, acquired %s, at %s" % ( filtered_metadata[key]["L1_METADATA_FILE"]["PRODUCT_METADATA"] ["WRS_PATH"], filtered_metadata[key]["L1_METADATA_FILE"] ["PRODUCT_METADATA"]["WRS_ROW"], filtered_metadata[key] ["L1_METADATA_FILE"]["PRODUCT_METADATA"]["DATE_ACQUIRED"], filtered_metadata[key]["PARENT_DIR"]) # being a separate image mrgeo = MrGeo() mrgeo.usedebug() mrgeo.start() # Let's go ahead and ingest those images into MrGeo, with each band red_refl = ingest_reflectance_image(mrgeo, filtered_metadata, 4, "landsat-red-refl" + output_postfix) nir_refl = ingest_reflectance_image(mrgeo, filtered_metadata, 5, "landsat-nir-refl" + output_postfix) ndvi = (nir_refl - red_refl) / (nir_refl + red_refl) ndvi.save('landsat-ndvi' + output_postfix) mrgeo.stop() print("***** Done *****")
def main(argv): root = '' month = -1 year = -1 output_postfix = '' try: opts, args = getopt.getopt(argv,"hr:m:y:o:",["root=","month=,year=,output-postfix="]) except getopt.GetoptError: print 'multi-landsat.py -r <rootdir> -m <monthnum> -y <year> -o <output-postfix>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'multi-landsat.py -r <rootdir> -m <monthnum> -y <year> -o <output-postfix>' sys.exit() elif opt in ("-r", "--root"): root = arg elif opt in ("-m", "--month"): month = int(arg) elif opt in ("-y", "--year"): year = int(arg) elif opt in ("-o", "--output-postfix"): output_postfix = arg print 'Root is %s' % (root) print 'Month is %d' % (month) print 'Year is %d' % (year) metadata = load_all_metadata(root) # Filter the metadata to find the most recent imagery for each scene. # It is assumed that the root directory only contains scenes we are # interested in. filtered_metadata = {} for md in metadata: acqdate = parse(md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["DATE_ACQUIRED"]) if acqdate.month == month and acqdate.year == year: wrs_path = int(md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_PATH"]) wrs_row = int(md["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_ROW"]) key = "%03d%03d" % (wrs_path, wrs_row) if filtered_metadata.get(key) is None: filtered_metadata[key] = md else: existing_acq_date = parse(filtered_metadata[key]["L1_METADATA_FILE"]["PRODUCT_METADATA"]["DATE_ACQUIRED"]) if acqdate > existing_acq_date: filtered_metadata[key] = md for key in filtered_metadata: print "Processing scene at path %s, row %s, acquired %s, at %s" % (filtered_metadata[key]["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_PATH"], filtered_metadata[key]["L1_METADATA_FILE"]["PRODUCT_METADATA"]["WRS_ROW"], filtered_metadata[key]["L1_METADATA_FILE"]["PRODUCT_METADATA"]["DATE_ACQUIRED"], filtered_metadata[key]["PARENT_DIR"]) # being a separate image mrgeo = MrGeo() mrgeo.usedebug() mrgeo.start() # Let's go ahead and ingest those images into MrGeo, with each band red_refl = ingest_reflectance_image(mrgeo, filtered_metadata, 4, "landsat-red-refl" + output_postfix) nir_refl = ingest_reflectance_image(mrgeo, filtered_metadata, 5, "landsat-nir-refl" + output_postfix) ndvi = (nir_refl - red_refl) / (nir_refl + nir_refl) ndvi.save('landsat-ndvi' + output_postfix) mrgeo.stop() print("***** Done *****")