• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python rasterstats.zonal_stats函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中rasterstats.zonal_stats函数的典型用法代码示例。如果您正苦于以下问题:Python zonal_stats函数的具体用法?Python zonal_stats怎么用?Python zonal_stats使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了zonal_stats函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_nan_counts

def test_nan_counts():
    from affine import Affine
    transform = Affine(1, 0, 1, 0, -1, 3)

    data = np.array([
        [np.nan, np.nan, np.nan],
        [0, 0, 0],
        [1, 4, 5]
    ])

    # geom extends an additional row to left
    geom = 'POLYGON ((1 0, 4 0, 4 3, 1 3, 1 0))'

    # nan stat is requested
    stats = zonal_stats(geom, data, affine=transform, nodata=0.0, stats="*")

    for res in stats:
        assert res['count'] == 3  # 3 pixels of valid data
        assert res['nodata'] == 3  # 3 pixels of nodata
        assert res['nan'] == 3  # 3 pixels of nans

    # nan are ignored if nan stat is not requested
    stats = zonal_stats(geom, data, affine=transform, nodata=0.0, stats="count nodata")

    for res in stats:
        assert res['count'] == 3  # 3 pixels of valid data
        assert res['nodata'] == 3  # 3 pixels of nodata
        assert 'nan' not in res
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:28,代码来源:test_zonal.py


示例2: test_mini_raster

def test_mini_raster():
    polygons = os.path.join(DATA, 'polygons.shp')
    stats = zonal_stats(polygons, raster, raster_out=True)
    stats2 = zonal_stats(polygons, stats[0]['mini_raster'],
                         raster_out=True, transform=stats[0]['mini_raster_GT'])
    assert (stats[0]['mini_raster'] == stats2[0]['mini_raster']).sum() == \
        stats[0]['count']
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:7,代码来源:test_zonal.py


示例3: test_mini_raster

def test_mini_raster():
    polygons = os.path.join(DATA, 'polygons.shp')
    stats = zonal_stats(polygons, raster, raster_out=True)
    stats2 = zonal_stats(polygons, stats[0]['mini_raster_array'],
                         raster_out=True, affine=stats[0]['mini_raster_affine'])
    assert (stats[0]['mini_raster_array'] == stats2[0]['mini_raster_array']).sum() == \
        stats[0]['count']
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:7,代码来源:test_zonal.py


示例4: test_band_alias

def test_band_alias():
    polygons = os.path.join(DATA, 'polygons.shp')
    stats_a = zonal_stats(polygons, raster)
    stats_b = zonal_stats(polygons, raster, band=1)
    with pytest.deprecated_call():
        stats_c = zonal_stats(polygons, raster, band_num=1)
    assert stats_a[0]['count'] == stats_b[0]['count'] == stats_c[0]['count']
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:7,代码来源:test_zonal.py


示例5: segQuality

def segQuality(inVector, inImage):
    # open the vector
    lyr = fiona.open(inVector)
    features = [x for x in lyr]
    values = np.zeros([len(features), 5], dtype=float)
    # loop over features
    for  i in range(len(features)):
        geometry1 = shape(features[i]['geometry'])
        
        restFeatures = features[:i] + features[(i+ 1):]
        
        value = zonal_stats(geometry1, inImage, stats=['count'], add_stats={'mymean':mymean, "myvarianza":varianza } )
            
        df =  pd.DataFrame.from_dict(value, orient='columns', dtype=None)
        
            
        for j in range(len(restFeatures)):        
            geometry2 = shape(features[j]['geometry'])   
            if geometry2.intersects(geometry1) == True:
                #print("They touch")
                value = zonal_stats(geometry2, inImage, stats=['count'], add_stats={'mymean':mymean, "myvarianza":varianza } )
                df = df.append(pd.DataFrame.from_dict(value, orient='columns', dtype=None))
            
        values[i,0] = df.iloc[0,0] # count
        values[i,1] = df.iloc[0,1] # mean
        values[i,2] = df.iloc[0,2] # myvarianza
        values[i,3] = np.var(df.iloc[:,1]) # varianza between
        values[i,4] = len(df.iloc[1:]) # neighbours
    # get overal values   
    intraVarWeighted = np.nansum( values[:,0]*values[:,2] ) / np.nansum(values[:,0])
    interVarWeighted = np.nansum( values[:,4]*values[:,3] ) / np.nansum(values[:,4])
    normVariance = (intraVarWeighted - interVarWeighted) / (intraVarWeighted + interVarWeighted)
    numberSegments =  len(values[:,4])
    
    return( intraVarWeighted, interVarWeighted, normVariance, numberSegments )
开发者ID:Rasilgon,项目名称:OBIA,代码行数:35,代码来源:metrics.py


示例6: test_nopoints

def test_nopoints():
    with pytest.raises(TypeError):
        shapely_to_ogr_type('Point')
    with pytest.raises(TypeError):
        shapely_to_ogr_type('MultiPoint')

        zonal_stats(geoms, raster, global_src_extent=True)
开发者ID:IamJeffG,项目名称:python-raster-stats,代码行数:7,代码来源:test_zonal.py


示例7: test_copy_properties_warn

def test_copy_properties_warn():
    polygons = os.path.join(DATA, 'polygons.shp')
    # run once to trigger any other unrelated deprecation warnings
    # so the test does not catch them instead
    stats_a = zonal_stats(polygons, raster)
    with pytest.deprecated_call():
        stats_b = zonal_stats(polygons, raster, copy_properties=True)
    assert stats_a == stats_b
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:8,代码来源:test_zonal.py


示例8: test_mini_raster

def test_mini_raster():
    from geopandas import GeoDataFrame
    polygons = os.path.join(DATA, 'polygons.shp')
    df = GeoDataFrame.from_file(polygons)
    stats = zonal_stats(df.geometry, raster, raster_out=True)
    stats2 = zonal_stats(df.geometry, stats[0]['mini_raster'],
                         raster_out=True, transform=stats[0]['mini_raster_GT'])
    assert (stats[0]['mini_raster'] == stats2[0]['mini_raster']).sum() == \
        stats[0]['count']
开发者ID:idonglei,项目名称:python-raster-stats,代码行数:9,代码来源:test_zonal.py


示例9: test_transform

def test_transform():
    with rasterio.open(raster) as src:
        arr = src.read(1)
        affine = src.transform
    polygons = os.path.join(DATA, 'polygons.shp')

    stats = zonal_stats(polygons, arr, affine=affine)
    stats2 = zonal_stats(polygons, arr, transform=affine.to_gdal())
    assert stats == stats2
    pytest.deprecated_call(zonal_stats, polygons, raster, transform=affine.to_gdal())
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:10,代码来源:test_zonal.py


示例10: test_range

def test_range():
    polygons = os.path.join(DATA, 'polygons.shp')
    stats = zonal_stats(polygons, raster, stats="range min max")
    for stat in stats:
        assert stat['range'] == stat['max'] - stat['min']
    ranges = [x['range'] for x in stats]
    # without min/max specified
    stats = zonal_stats(polygons, raster, stats="range")
    assert 'min' not in stats[0]
    assert ranges == [x['range'] for x in stats]
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:10,代码来源:test_zonal.py


示例11: test_direct_features_collections

def test_direct_features_collections():
    polygons = os.path.join(DATA, 'polygons.shp')
    features = read_features(polygons)
    collection = read_featurecollection(polygons)

    stats_direct = zonal_stats(polygons, raster)
    stats_features = zonal_stats(features, raster)
    stats_collection = zonal_stats(collection, raster)

    assert stats_direct == stats_features == stats_collection
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:10,代码来源:test_zonal.py


示例12: test_featurecollection

def test_featurecollection():
    from geopandas import GeoDataFrame
    polygons = os.path.join(DATA, 'polygons.shp')
    df = GeoDataFrame.from_file(polygons)
    assert df.__geo_interface__['type'] == 'FeatureCollection'

    stats = zonal_stats(polygons, raster)

    # geointerface featurecollection
    stats2 = zonal_stats(df, raster)
    assert stats == stats2
开发者ID:idonglei,项目名称:python-raster-stats,代码行数:11,代码来源:test_zonal.py


示例13: test_ndarray_affine

def test_ndarray_affine():
    polygons = os.path.join(DATA, 'polygons.shp')
    arr, gt = _get_raster_array_gt(raster)
    stats1 = zonal_stats(polygons, arr, transform=gt)

    from affine import Affine
    atrans = Affine.from_gdal(*gt)
    stats2 = zonal_stats(polygons, arr, transform=atrans)
    assert stats1[0]['count'] == stats2[0]['count']

    stats3 = zonal_stats(polygons, arr, affine=gt)
    assert stats1[0]['count'] == stats3[0]['count']
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:12,代码来源:test_zonal.py


示例14: test_geodataframe_zonal

def test_geodataframe_zonal():
    polygons = os.path.join(DATA, 'polygons.shp')

    try:
        import geopandas as gpd
        df = gpd.read_file(polygons)
        if not hasattr(df, '__geo_interface__'):
            pytest.skip("This version of geopandas doesn't support df.__geo_interface__")
    except ImportError:
        pytest.skip("Can't import geopands")

    expected = zonal_stats(polygons, raster)
    assert zonal_stats(df, raster) == expected
开发者ID:perrygeo,项目名称:python-rasterstats,代码行数:13,代码来源:test_zonal.py


示例15: test_ndarray

def test_ndarray():
    arr, gt = _get_raster_array_gt(raster)
    polygons = os.path.join(DATA, 'polygons.shp')
    stats = zonal_stats(polygons, arr, transform=gt)
    assert stats == zonal_stats(polygons, raster)
    assert stats[0]['count'] == 75
    assert stats[1]['count'] == 50

    points = os.path.join(DATA, 'points.shp')
    stats = zonal_stats(points, arr, transform=gt)
    assert stats == zonal_stats(points, raster)
    assert sum([x['count'] for x in stats]) == 3
    assert round(stats[0]['mean'], 3) == 11.386
    assert round(stats[1]['mean'], 3) == 35.547
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:14,代码来源:test_zonal.py


示例16: rasterstats_statistics

    def rasterstats_statistics(self,admin_vect_file):

        from rasterstats import zonal_stats
        stats = zonal_stats(admin_vect_file, self.population_raster)
        print stats

        return "Calcoli statistici effettuati per categorie cicloni e popolazione....\n"
开发者ID:geosconsulting,项目名称:sparc_new,代码行数:7,代码来源:CompleteProcessingStorms.py


示例17: test_categorical

def test_categorical():
    polygons = os.path.join(DATA, 'polygons.shp')
    categorical_raster = os.path.join(DATA, 'slope_classes.tif')
    stats = zonal_stats(polygons, categorical_raster, categorical=True)
    assert len(stats) == 2
    assert stats[0][1.0] == 75
    assert 5.0 in stats[1]
开发者ID:rasmuse,项目名称:python-rasterstats,代码行数:7,代码来源:test_zonal.py


示例18: coverage

def coverage(raster, regions, key_property=None):
    if key_property is None:
        key_property = 'id'

    with rasterio.open(raster) as r:
        res = r.res
        cell_area = res[0] * res[1]

    def _not_nodata(x):
        return (~x.mask).sum()

    with fiona.open(regions) as features:
        key_mapping = {}

        areas = {}
        keys = []

        stats = zonal_stats(
            features,
            raster,
            stats='',
            add_stats={'count':_not_nodata},
            geojson_out=True)

    def _coverage(item):
        count = item['properties']['count']
        total_area = shapely.geometry.shape(item['geometry']).area
        return count * cell_area / total_area

    result = {
        item['properties'][key_property]: _coverage(item)
        for item in stats}

    return result
开发者ID:rasmuse,项目名称:biogas-residues-manure,代码行数:34,代码来源:spatial_util.py


示例19: main

def main():
    for t in tifs:
        stats = rasterstats.zonal_stats(inshp,t,stats=['sum'],copy_properties=True)
        df = pd.DataFrame(stats)
        df.set_index("BasinID",inplace=True)
        df.sort_index(inplace=True)
        df.to_csv(t[:-4]+'.csv')
开发者ID:fgassert,项目名称:aqueduct_atlas,代码行数:7,代码来源:sum_by_basin.py


示例20: calculate_pop_value

def calculate_pop_value(node, raster_array, affine):
    stats = zonal_stats(node.polygon, raster_array, affine=affine, stats="sum", nodata=-1)
    total = stats[0]['sum']
    if total:
        return total
    else:
        return 0
开发者ID:joem34,项目名称:munich_zoning_project,代码行数:7,代码来源:helper_functions.py



注:本文中的rasterstats.zonal_stats函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python ratechecker_parameters.ParamsSerializer类代码示例发布时间:2022-05-26
下一篇:
Python rasterstats.raster_stats函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap