Пример #1
0
        def calctimeseriesrasters(measure,
                                  daterng,
                                  basedirectory,
                                  urbanextentgeom,
                                  bufferextentgeom,
                                  rastername='daymet'):
            tempresult = {}
            returndates = []

            urbanextentresults = {'std': [], 'mean': [], 'min': [], 'max': []}

            bufferextentresults = {'std': [], 'mean': [], 'min': [], 'max': []}

            for daymetdate in daterng:
                if rastername == 'daymet':
                    daymettimetuple = daymetdate.timetuple()
                    year = daymettimetuple.tm_year
                    yday = daymettimetuple.tm_yday

                    daymetfilename = "daymet_v3_{0}_{1}_{2}.tif".format(
                        measure, year, yday)

                    print "doing {0},{1}".format(year, yday)
                    try:
                        raster = read_raster(
                            op.join(basedirectory, measure, daymetfilename))
                    except Exception, e:
                        print e
                        traceback.print_exc()
                        print "{0} Does not exist in the file system".format(
                            daymetfilename)
                        continue
                    returndates.append("{0}-{1}".format(year, yday))
                elif rastername == 'prism':
                    daymettimetuple = daymetdate.timetuple()
                    day = daymetdate.day
                    month = daymetdate.month
                    year = daymettimetuple.tm_year
                    yday = daymettimetuple.tm_yday

                    prismfilename = "(PRISM_{measure}_stable_4kmD1_{year}{month}{day}_bil).tif"\
                                                     .format(measure = measure.strip('prism'),
                                                            year = year,
                                                            month = str(month).zfill(2),
                                                            day = str(day).zfill(2))

                    print "doing prism {0},{1}".format(year, day)
                    print op.join(basedirectory, prismfilename)
                    try:
                        raster = read_raster(
                            op.join(basedirectory, prismfilename))
                    except Exception, e:
                        print e
                        traceback.print_exc()
                        print prismfilename
                        continue
Пример #2
0
def test_raster_io_gs():
    filepath = 'data/raster/prism.tif'
    gs_path = 'gs://%s/%s' % (gs_bucket_name, filepath)

    # write a raster file to gs
    outf = fileutils.open(gs_path, "wb")
    with open(os.path.join(base, filepath)) as inf:
        outf.write(inf.read())
    outf.close()

    # read the raster file from gs
    rd = rst.read_raster(gs_path)
    assert isinstance(rd, rst.RasterDataset)

    # clean up
    delete_gs_key(filepath)
Пример #3
0
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

import os
from pyspatial.vector import read_geojson, to_geometry
from pyspatial.raster import read_raster
import numpy as np
from numpy.testing import assert_array_almost_equal
from test_raster_query import compute_stats

base_dir = os.path.abspath(os.path.dirname(__file__))
get_path = lambda x: os.path.join(base_dir, "data", x)
vl, vldf = read_geojson(get_path("vector/small_polygon.geojson"))
rd = read_raster(get_path("raster/95000_45000.tif"))
shp = vl[0]


def test_small_polygon():
    bboxes = vl.boundingboxes()
    shp_px = rd.to_pixels(bboxes)[0]

    grid = rd.to_geometry_grid(*shp_px.bounds)

    areas = {}
    for i, b in grid.iteritems():
        diff = b.Intersection(to_geometry(shp, proj=rd.proj))
        areas[i] = diff.GetArea()

    total_area = sum(areas.values())
Пример #4
0
def test_read_raster():
    rd = rst.read_raster(filename)
    assert isinstance(rd, rst.RasterDataset)
Пример #5
0
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

import os
from pyspatial.vector import read_geojson, to_geometry
from pyspatial.raster import read_raster
import numpy as np
from numpy.testing import assert_array_almost_equal
from test_raster_query import compute_stats

base_dir = os.path.abspath(os.path.dirname(__file__))
get_path = lambda x: os.path.join(base_dir, "data", x)
vl, vldf = read_geojson(get_path("vector/small_polygon.geojson"))
rd = read_raster(get_path("raster/95000_45000.tif"))
shp = vl[0]


def test_small_polygon():
    bboxes = vl.boundingboxes()
    shp_px = rd.to_pixels(bboxes)[0]

    grid = rd.to_geometry_grid(*shp_px.bounds)

    areas = {}
    for i, b in grid.iteritems():
        diff = b.Intersection(to_geometry(shp, proj=rd.proj))
        areas[i] = diff.GetArea()

    total_area = sum(areas.values())