def build_multiband_image(rootDIR, outName, newfoldername, find, drivercode, ndvalue): outdir = create_output_dir(rootDIR, newfoldername) print "\nOutputting files to : {0}".format(outdir) print "\nFinding HDF files in directory/subfolders: {0}".format(rootDIR) hdfs = find_files(rootDIR, ".hdf") print "\tFound {0} files.".format(len(hdfs)) print "\nGetting images to process of type {0}...".format(find) toprocess = [] for hdf in hdfs: sds = get_hdf_subdatasets(hdf) for ds in sds: if find.upper() in ds[1].upper(): toprocess.append(ds[0]) print "\t\t{0}".format(ds[0]) bands = len(toprocess) print "\tFound {0} images of type {1}.".format(bands, find) print "\nGetting output parameters..." rows, cols, datatype, geotransform, projection = open_image(toprocess[0]) print "\tParameters: rows: {0}, cols: {1}, datatype: {2}, projection: {3}.".format(rows, cols, datatype, projection) outfile = os.path.join(outdir, outName) + ".tif" print "\nOutput file is: {0}".format(outfile) outds = create_output_raster(outfile, cols, rows, bands, datatype, drivername=drivercode) print "\tCreated output file." print"\nAdding bands to output file..." for i in range(0, bands): print "\tProcessing band {0} of {1}...".format(i + 1, bands) image = gdal.Open(toprocess[i]) band = image.GetRasterBand(1) outband = outds.GetRasterBand(i + 1) print "\t\tReading band data to array..." data = band.ReadAsArray(0, 0, cols, rows) print "\t\tWriting band data to output band..." outband.WriteArray(data, 0, 0) outband.SetNoDataValue(ndvalue) outband.FlushCache() del data, outband image = "" print "\tFinished adding bands to output file." print "\nSetting transform and projection..." outds.SetGeoTransform(geotransform) outds.SetProjection(projection) outDS = "" print "\nProcess completed."
from create_rule_image_multiprocessed_bypx import phenological_classificaion, read_reference_file import os from pyhytemporal.utils import find_files clip1refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip1", "mean.ref") clip2refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip2", "mean.ref") clip3refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip3", "mean.ref") clip4refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip4", "mean.ref") clip5refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip5", "mean.ref") clip6refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012/clip6", "mean.ref") meanrefs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012", ".ref", recursive=False) reffiles = [clip1refs, clip2refs, clip3refs, clip4refs, clip5refs, clip6refs, meanrefs] rootout = "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Classified" outfolders = [os.path.join(rootout, "clip1refs"), os.path.join(rootout, "clip2refs"), os.path.join(rootout, "clip3refs"), os.path.join(rootout, "clip4refs"), os.path.join(rootout, "clip5refs"), os.path.join(rootout, "clip6refs"), os.path.join(rootout, "meanrefs")] clip1imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip1.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip1.tif"] clip2imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip2.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip2.tif"] clip3imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip3.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip3.tif"] clip4imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip4.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip4.tif"] clip5imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip5.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip5.tif"] clip6imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip6.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip6.tif"] imagelist = [clip1imgs, clip2imgs, clip3imgs, clip4imgs, clip5imgs, clip6imgs] searchstrings = ["soy", "corn", "wwheat", "sorghum", "wwheatsoydbl"] fitmethods = ["SLSQP"]#, "TNC"] for method in fitmethods: for images in imagelist:
from create_rule_image_multiprocessed_bypx import phenological_classificaion, read_reference_file import os from get_px_coords_from_point import get_px_coords_from_points from pyhytemporal.utils import find_files reffiles = [] clip1refs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012clip1test2/clip1", "mean.ref") reffiles.append(clip1refs) #meanrefs = find_files("/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012", ".ref", recursive=False) #reffiles.append(meanrefs) rootout = "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Classified/test1_envicurves/fullpxonly/geometricmean" #outfolders = [os.path.join(rootout, "clip1refs")]#, os.path.join(rootout, "clip2refs"), os.path.join(rootout, "clip3refs"), os.path.join(rootout, "clip4refs"), os.path.join(rootout, "clip5refs"), os.path.join(rootout, "clip6refs"), outfolders = [os.path.join(rootout, "clip1refs")] imagelist = [] clip1imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip1.tif"]#, "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip1.tif"] imagelist.append(clip1imgs) searchstrings = ["soy", "corn", "wwheat", "sorghum", "wwheatsoydbl"] fitmethods = ["SLSQP"]#, "TNC"] fullpixels = get_px_coords_from_points(clip1imgs[0], "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/clip1_fullcells_points.shp") for method in fitmethods: for images in imagelist: for img in images: name = os.path.splitext(os.path.basename(img))[0] if "NDVI" in name: type = "NDVI"
#clip6imgs = ["/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasNDVI_2012_clip6.tif", "/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/clips/KansasEVI_2012_clip6.tif"] #clip6out = os.path.join(outroot, "clip6") # #clips.append((clip6locs, clip6imgs, clip6out)) for locs, imgs, out in clips: for img in imgs: print "Processing {0}...".format(img) if "NDVI" in img: postfix = "_NDVI" else: postfix = "_EVI" get_reference_curves(img, locs, 17, 16, outdir=out, filepostfix=postfix) means = find_files(outroot, "mean.ref") searchstrings = (["soy", "wwheat", "sorghum", "corn", "wwheatsoydbl"], ["_EVI", "_NDVI"]) for string in searchstrings[0]: for vi in searchstrings[1]: cropmeans = [] for mean in means: if string + vi in mean: cropmeans.append(mean) cropname = string + vi refvals = [] for cropmean in cropmeans: error, vals = read_reference_file(cropmean) if not error: refvals.append(vals) listedvals = []