Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)