def plot_sigs(signaturedirectory, outputdirectory, name, signaturename): """ """ import os from utils import find_files, unique_name from core import signatureCollection from plotting import SignaturePlot if not outputdirectory: outputdirectory = signaturedirectory sigs = find_files(signaturedirectory, "mean.ref") if not sigs: click.BadParameter("Did not find any signature files in the specified directory.") if signaturename: filteredsigs = [] for searchstring in signaturename: for sig in sigs: if searchstring.upper() in sig.upper(): filteredsigs.append(sig) sigs = filteredsigs signatures = signatureCollection() for sig in sigs: try: signatures.add(sig) except Exception as e: print e #TODO Fix core temporalSignature to use exceptions so they can be properly handled here name, ext = os.path.splitext(name) path = unique_name(outputdirectory, name, ext=ext) print("Outputting to {0}".format(path)) plot = SignaturePlot(outputdirectory, os.path.basename(path)) plot.plot_collection(signatures)
def extract_signatures(image, shapefiledirectory, startdoy, doyinterval, outputdir, filelabel, plotsigs): """ Extracts temporal signatures for a set of point geometry shapefiles in a specified directory and outputs them to a set of .ref files in an output directory. """ import os from plotting import SignaturePlot from utils import find_files, create_output_dir, unique_name from signatureFunctions import get_sigs_in_dir, get_reference_curves if outputdir is None: outputdir = create_output_dir(os.path.dirname(image), "signatures", usetime=True) shapefiles = find_files(shapefiledirectory, ".shp", recursive=False) #TODO: Need a method to find only valid shapefiles in the directory get_reference_curves(image, shapefiles, startdoy, doyinterval, outdir=outputdir, filepostfix=filelabel) if plotsigs: path = unique_name(outputdir, "signaturePlot", ext=".pdf") sigs = get_sigs_in_dir(outputdir) plot = SignaturePlot(outputdir, os.path.basename(path)) plot.plot_collection(sigs)