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
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)
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())
def test_read_raster(): rd = rst.read_raster(filename) assert isinstance(rd, rst.RasterDataset)
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())