在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我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理