def plot_pixel(pixelproperties, dims=(11, 8), color=None): x, y = get_sort_dates_values(pixelproperties[4]) figure = plt.figure() axes = figure.add_subplot(1,1,1) axes.plot(x, y, '{0}-'.format(color)) axes.set_xlabel("Pixel col {0} row {1}: {2} as {3} in classified".format(pixelproperties[0], pixelproperties[1], pixelproperties[3], pixelproperties[2])) return figure
def main(): outpath = r"/Users/phoetrymaster/Documents/School/Geography/Thesis/GIS In Action/Images/example_fit_process_1.pdf" wheat = r"/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012clip1test2/clip1/wwheat_NDVI_mean.ref" corn = r"/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012clip1test2/clip1/corn_NDVI_mean.ref" soy = r"/Users/phoetrymaster/Documents/School/Geography/Thesis/Data/MODIS_KANSAS_2007-2012/reprojected/Refs/2012clip1test2/clip1/soy_NDVI_mean.ref" pixel = r"/Users/phoetrymaster/Documents/School/Geography/Thesis/Scripting/Testing/corn_example_point.ref" wheatmean = create_rule_image_multiprocessed_bypx.read_reference_file(wheat)[1] cornmean = create_rule_image_multiprocessed_bypx.read_reference_file(corn)[1] soymean = create_rule_image_multiprocessed_bypx.read_reference_file(soy)[1] refs = [('wheat', wheatmean), ('corn', cornmean), ('soy', soymean)] print refs pixelvalues = create_rule_image_multiprocessed_bypx.read_reference_file(pixel)[1] toplot = [(wheatmean, 'b', 'Wheat Signature'), (cornmean, 'y', "Corn Signature"), (soymean, 'g', 'Soy Signature'), (pixelvalues, 'r', 'Unknown Pixel')] figure = plt.figure() axes = figure.add_subplot(1, 1, 1) pdf = PdfPages(outpath) for item, color, label in toplot: print item x, y = create_rule_image_multiprocessed_bypx.get_sort_dates_values(item) newy = [] for value in y: newy.append(value / 10000.0) axes.plot(x, newy, '{0}-'.format(color), label=label) handles, labels = axes.get_legend_handles_labels() axes.set_xlabel("Day of Year") axes.set_ylabel("NDVI") axes.legend(handles, labels, fontsize='small') pdf.savefig() plt.close(figure) pdf.close() for crop, ref in refs: interp = create_rule_image_multiprocessed_bypx.interpolate_ref(ref) result = create_rule_image_multiprocessed_bypx.find_fit(pixelvalues, interp, 0, 0, 'SLSQP', bnds=((0.6, 1.4), (0.6, 1.4), (-10, 10))) print(crop + ":") print(result)
def get_mean_values(referencevalues, starydoy, doyinterval): for i in range(0, len(referencevalues)): if not i: vals1 = referencevalues[i] valdict = vallist_to_dict(vals1, starydoy, doyinterval) doys = [] for k, v in valdict.items(): doys.append(k) else: curve1 = interpolate_ref(valdict) vals2 = referencevalues[i] valdict2 = vallist_to_dict(vals2, starydoy, doyinterval) res = find_fit(valdict2, curve1, 0, -3000, "SLSQP") transforms = list(res[1]) xscale = (float(transforms[1]) - 1) / 2.0 + 1 yscale = (float(transforms[0]) - 1) / 2.0 + 1 tshift = float(transforms[2]) / 2.0 valdict = get_transformed_values(curve1, doys, xscale, yscale, tshift) x, y = get_sort_dates_values(valdict) return y
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 = [] for ref in refvals: x, y = get_sort_dates_values(ref) listedvals.append(y) print cropname write_mean_ref_to_txt(cropname, listedvals, 17, 16, outroot, comment="Generated by clipref.py version 0.1")