在xarray中使用形状文件、地形图和多边形的工具

xshape的Python项目详细描述


x形状

https://img.shields.io/pypi/v/xshape.svghttps://img.shields.io/travis/ClimateImpactLab/xshape.svgDocumentation StatusUpdates

在xarray中使用形状文件、地形图和多边形的工具

功能

  • 读取shapefile并获取字段记录的xarray数据数组
  • 在网格数据上绘制形状文件边界
  • 将由shapefile记录索引的xarray dataarray数据绘制为choropleth

使用量

获取shapefile中字段的记录
In[1]:importxshapeIn[2]:fields,polygons=xshape.parse_shapefile(...:'tests/data/shapefiles/CA_counties/CA_counties',...:encoding='latin1')In[3]:fieldsOut[3]:<xarray.Dataset>Dimensions:(shape:58)Coordinates:*shape(shape)int640123456789101112131415161718...Datavariables:STATEFP(shape)<U22'06''06''06''06''06''06''06''06''06''06'...COUNTYFP(shape)<U22'107''009''047''079''097''041''023''051'...COUNTYNS(shape)<U22'00277318''01675885''00277288''00277304'...GEOID(shape)<U22'06107''06009''06047''06079''06097''06041'...NAME(shape)<U22'Tulare''Calaveras''Merced''San Luis Obispo'...NAMELSAD(shape)<U22'Tulare County''Calaveras County'...LSAD(shape)<U22'06''06''06''06''06''06''06''06''06''06'...CLASSFP(shape)<U22'H1''H1''H1''H1''H1''H1''H1''H1''H1''H1'...MTFCC(shape)<U22'G4020''G4020''G4020''G4020''G4020''G4020'...CSAFP(shape)<U22'''''''''488''488''''''''''488''472'...CBSAFP(shape)<U22'47300''''32900''42020''42220''41860'...METDIVFP(shape)<U22'''''''''''41884''''''''''36084'''''...FUNCSTAT(shape)<U22'A''A''A''A''A''A''A''A''A''A''A''A'...ALAND(shape)<U22'12494707314''2641820029''5011554680'...AWATER(shape)<U22'37391604''43810423''112760479''820974619'...INTPTLAT(shape)<U22'+36.2288317''+38.1846184''+37.1948063'...INTPTLON(shape)<U22'-118.7810618''-120.5593996''-120.7228019'...

在网格数据上绘制形状边界

In[4]:importxarrayasxr,numpyasnp,xshape# generate sample dataIn[5]:da=xr.DataArray(...:np.cos((...:np.arange(41*45).reshape((41,45))*np.arange(41*45).reshape((45,41)...:).T)/4e5),...:dims=('lat','lon'),...:coords={...:'lon':np.linspace(-125,-114,45),...:'lat':np.linspace(32,42,41)})...:In[6]:da.xshape.overlay(...:'tests/data/shapefiles/CA_counties/CA_counties',...:encoding='latin1',...:cmap='YlGnBu');...:
docs/images/california_map.png

在choropleth中绘制区域数据

使用xarray扩展,我们可以直接绘制DataArray数据:

In[7]:importxshape,xarrayasxr,pandasaspdIn[8]:df=pd.read_csv('tests/data/datasets/co-est2016.csv',encoding='latin1')...:ca=df[(df['STATE']==6)&(df['COUNTY']>0)].copy()...:ca['fips']=df['STATE']*1000+df['COUNTY']...:da=ca.set_index(['fips'])['POPESTIMATE2016'].to_xarray()...:da.coords['GEOID']=('fips',),list(map('{:05}'.format,da.fips.values))...:da=da.swap_dims({'fips':'GEOID'})In[9]:da.xshape.plot(...:'tests/data/shapefiles/CA_counties/CA_counties',...:encoding='latin1',...:cmap='YlGnBu');...:
docs/images/california_map_pop.png

我们还可以将字段中的信息与数据数组中包含的数据结合起来:

In[10]:land_area=(....:fields....:.set_coords('GEOID')....:.swap_dims({'shape':'GEOID'})....:.ALAND.astype(float))In[11]:np.log(da/land_area).xshape.plot(....:'tests/data/shapefiles/CA_counties/CA_counties',....:encoding='latin1',....:cmap='YlGnBu');....:
docs/images/california_map_pop_per_m2.png

待办事项

  • 使用shapefile重塑网格/像素数据的形状

历史记录

0.1.0(2018-01-13)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在不使用java安装outlook的情况下以编程方式创建pst文件?   如何在java中比较泛型方法中的数组?   JavaFXHTML节点元素   java H2数据库要降低的连接设置无效(2019)   安卓 hilt中的java依赖循环   java这个结构什么时候有意义?   带有模式和匹配器的Java正则表达式   来自类变量的java JNI jstring?   尝试从socket读取时发生java非法阻止模式异常   绑定中使用Moxy的java接口映射。xml不能使用多个接口?   java如何仅静音来电铃声而不静音短信   下载时,java无法获取音频进度条   java SavedIntanceState。getBoolean()使我的应用程序崩溃(我想)   java图像的永久位置?   mysql Java:将多个独立脚本重构为一个脚本   在Windows上以Java访问iTunes歌词数据   java改进BaseUrl和API   为什么有必要在OSGi security中为java security manager授予所有权限