GeoPandas官⽅中⽂⽂档--译著
译⾃(原版译著,有错误欢迎交流,转载请注明)
GeoPandas是⼀个开源项⽬,它的⽬的是使得在Python下更⽅便的处理地理空间数据。GeoPandas扩展了pandas的数据类型,允许其在⼏何类型上进⾏空间操作。⼏何操作由 执⾏。 GeoPandas进⼀步依赖于 进⾏⽂件存取和 , 进⾏绘图。
描述
GeoPandas 的⽬的是在Python下更容易处理地理数据。它结合了pandas和shaply的功能,提供在pandas下的空间操作和shapel下⾼层次的处理多⼏何构型的接⼝。GeoPandas 允许你很容易的⽤Python进⾏操作,不然的话,你将不得不⽤⼀个空间数据库去处理,如PostGIS。
安装
笔者⽬前的发现版本是0.1,安装,可以使⽤pip或easy_install:
pip install geopandas
你也可以通过克隆 上的仓库去安装最新的开发版本,命令脚本如下:
git clone github/geopandas/geopandas.git
cd geopandas
python setup.py install
同样也可以在PyPI上安装最新的可⽤开发版本,使⽤pip,加上--pre安装1.4或者更⾼的版本,或者直接使⽤pip从GitHub仓库中安装:pip install git+git://github/geopandas/geopandas.git
依赖
⽀持Python版本2.6,2.7,和3.2+
依赖包:
(version 0.13 or later)
0.99 (optional; for geocoding)
(optional; for PostGIS connection)
绘图的话会⽤到另外的⼀些包:
测试
从源⽬录下运⾏当前的测试集,在命令⾏运⾏:
nosetests -v
测试⾃动运⾏在GitHub库中所有的提交事务上,包括在的push请求。
GeoPandas 使⽤⼿册
GeoPandas实现了两个主要的数据结构,GeoSeries和GeoDataFrame。它们分别是pandas中Series和DataFrame的⼦类。GeoSeries
⼀个GeoSeries包含⼀个⼏何图形的序列。
GeoSeries类实现了⼏乎所有的Shapely对象的属性和⽅法。在使⽤GeoSeries时,它将应⽤于序列中所有⼏何图形的每⼀个元素。⼆元操作可以在两个GeoSeries对象之间进⾏,这种情况下⼆元操作将应⽤于每⼀个元素。这两个序列将按匹配的索引进⾏对于操作。⼆元操作也可以应⽤于单个⼏何,此时⼆元操作将对该⼏何序列的每个元素进⾏。在以上两种情况下,操作将会返回Series或者GeoSeries对象。
在GeoSeries对象中,以下Shapely对象的⽅法和属性是可以使⽤的:
GeoSeries.area
返回⼀个Series,它包含GeoSeries中每个⼏何的⾯积。
GeoSeries.bounds
返回⼀个DataFrame,它包含每个⼏何的边界,⽤列值minx, miny, maxx, maxy来表⽰。
GeoSeries.length
返回⼀个Series,它包含每个⼏何的长度。
<_type
返回⼀个字符串的Series,字符串指定每个对象的⼏何类型。
GeoSeries.distance(other)
返回⼀个Series,它包含与其他GeoSeries对象(每个元素)或⼏何对象的最⼩距离。
返回所有点的⼀个GeoSeries(经简易计算),这些点必须保证在每个⼏何的内部。
返回线环(LinearRings)的⼀个GeoSeries,它表⽰GeoSeries中每个多边形的外边界。
GeoSeries.interior
返回内部环序列的⼀个GeoSeries,它表⽰GeoSeries中每个多边形的内部环。
⼀元谓词操作
GeoSeries.is_empty
返回⼀个布尔型的Series,对于⼀个空的⼏何图形,该值就为True。
GeoSeries.is_ring
返回⼀个布尔型的Series,对于闭合的要素,该值就为True。
GeoSeries.is_simple
返回⼀个布尔型的Series,如果⼏何体⾃⾝不交叉,该值就为True(仅对线串--LineStrings和线环--LineRings有意义)。
GeoSeries.is_valid
返回⼀个布尔型的Series,如果⼏何体是有效的,该值就为True。
⼆元谓词操作
GeoSeries.almost_equals(other[,decimal=6])
返回⼀个布尔型的Series对象,如果在指定的⼩数位精度下,每个对象所有点与其他对象⼤致相等,该值就为True(可见equals())。ains(other)
返回⼀个布尔型的Series,如果每个对象的内部包含其他对象的内部和边界,并且它们的边界不相接,该值为True。sses(other)
返回⼀个布尔型的Series,如果每个对象的内部与其他对象的内部相交但不包含,并且相交的部分⼩于这两个相交对象⾃⾝,该值为True。
GeoSeries.disjoint(other)
返回⼀个布尔型的Series,如果每个对象的边界和内部与其他对象的边界和内部都不相交,该值为True。
GeoSeries.equals(other)
返回⼀个布尔型的Series,如果⼏何对象集合的边界,内部,外部都与其他⼏何对象⼀样,该值为True。
GeoSeries.intersects(other)
返回⼀个布尔型的Series,如果每个对象的边界和内部以其它任何形式与其他对象相交,该值为True。
返回⼀个布尔型的Series,如果对象与其他对象⾄少有⼀个点相同,且它们的内部任何部分都不相交,该值为True。GeoSeries.within(other)
返回⼀个布尔型的Series, 如果每个对象的边界和内部只与其他对象的内部相交(不包括边界和外部),该值为True(与contains()⽅法相反)。
集合理论⽅法
GeoSeries.boundary
返回⼀个低维对象每个⼏何体的边界集合的GeoSeries。
返回表⽰⼏何重⼼点的⼀个GeoSeries。
GeoSeries.difference(other)
返回每个⼏何体不在其他对象中的点的⼀个GeoSeries。
GeoSeries.intersection(other)
返回每个⼏何对象与其他⼏何对象相交的⼀个GeoSeries。
GeoSeries.symmetric_difference(other)
返回⼀个GeoSeries,它表⽰每个⼏何对象中的点不在其他⼏何对象中,同时其他⼏何对象中的点也不在这个⼏何对象中的部分(注:对称差异)。
GeoSeries.union(other)
返回每个⼏何对象与其他⼏何对象联合的⼀个GeoSeries。
构造⽅法(且这样译)
GeoSeries.buffer(distance,resolution=16)
返回⼏何图形的⼀个GeoSeries,他表⽰每个⼏何对象在给定的距离内的所有点。
当对象的点多于三个的时候,返回表⽰每个对象所有点的最⼩凸包多边形的⼀个GeoSeries;只有两个点的时候,凸包变成了线串;只有⼀个点的时候,就是当个点。
返回⼏何图形的⼀个GeoSeries,它表⽰包含其它对象的点或者最⼩矩形(边平⾏于坐标轴)。注:
即包络线
GeoSeries.simplify(tolerance,preserve_topology=True)
返回包含每个对象简化表⽰的⼀个GeoSeries。
仿射变换
旋转GeoSeries的坐标。
GeoSeries.scale(self,xfact=1.0,yfact=1.0,zfact=1.0,origin='center')
沿着(x,y,z)上各个⽅向的尺⼨缩放⼏何图形。
GeoSeries.skew(self,angle,origin='center',use_radians=False)
按⾓度沿着x和y维剪切/倾斜⼏何图形。
转变GeoSeries的坐标。
聚合⽅法
GeoSeries.unary_union
返回GeoSeries中所有⼏何体联合的⼀个⼏何体。
另外,以下的⽅法也实现了:
GeoSeries.from_file()
从⽂件中加载任何能被fiona识别的格式。
<_crs(crs=None,epsg=None)
转换GeoSeries中的⼏何图形到不同的坐标参考系统。当前GeoSeries的crs属性必须被设置。crs属性需要被指定以⽤于输出,或是⽤字典形式或是⽤EPSG编码⽅式。
这种⽅法将改变所有对象中的所有点。它没有概念或转换整个⼏何图形。所有连接点的⽚段在当前的投影中被认为是线段,⽽不是测地线。对象跨越国际⽇期变更线(或其他投影边界)是不被允许的。
GeoSeries.plot(colormap='Set1',alpha=0.5,axes=None)
进⾏GeoSeries中⼏何图形的绘制。colormap可以被matplotlib认可,但是推荐诸
如Accent,Dark2,Paired,Pastel1,Pastel2,Set1,Set2,Set3这些离散的colormap。这些都封装在plot_series()函数中。
返回⼀个元组,包含整个series边界的minx,miny,maxx,maxy值。包含在序列中的⼏何体的边界,可以参照GeoSeries.bounds。
pandas中Series对象的⽅法也是可以⽤的,尽管不是所有的都能适⽤于⼏何对象,并且⼀些结果可能返回Series⽽不是GeoSeries。在GeoSeries中专门实现了copy(), align(), isnull()和fillna()⽅法,它们是可以正常使⽤的。
GeoDataFrame
⼀个GeoDataFrame是⼀个列表数据结构,它包含⼀个叫做包含geometry的列,这个geometry包含⼀个GeoSeries。
现在,GeoDataFrame实现了以下⽅法:
类⽅法GeoDataFrame.from_file(filename, **kwargs)
从⽂件中加载可以被识别的任何格式的⼀个GeoDataFrame。参见read_file()。
类⽅法GeoDataFrame.from_postgis(sql,con,geom_col='geom',crs=None,index_col=None,coerce_float=True,params=None)
从PostGIS数据库⽂件中加载GeoDataFrame。
<_crs(crs=None,epsg=None,inplace=False)
转换GeoDataFrame的geometry列中的所有⼏何图形到其他坐标参考系统。当前GeoSeries的crs属性必须被设置。crs属性需要被指定以⽤于输出,或是⽤字典形式或是⽤EPSG编码⽅式。如果inplace=True,在当前的dataframe中geometry列将被替换,否则将返回⼀个新的GeoDataFrame。
这种⽅法将改变所有对象中的所有点。它没有概念或转换整个⼏何图形。所有连接点的⽚段在当前的投影中被认为是线段,⽽不是测地线。对象跨越国际⽇期变更线(或其他投影边界)是不被允许的。
<_file(filename,driver="ESRI Shapefile",**kwargs)
将GeoDataFrame写⼊⽂件。默认情况下,写成ESRI的shapefile格式。但是通过Fiona,任何OGR数据源也被⽀持写⼊。**kwargs被传给Fiona驱动器。
<_json(**kwargs)
将GeoDataFrame以字符串的⽅式表⽰为GeoJSON对象返回。
GeoSeries.plot(column=None,colormap=None,alpha=0.5,categorical=False,legend=False,axes=None)
绘制GeoDataFrame中⼏何图形。如果列参数给定,颜⾊根据这列的值绘制,否则在geometry列调⽤GeoSeries.plot()函数。都封装在plot_dataframe()函数中。
所有pandas中DataFrane对象的⽅法也是可以⽤的,尽管可能有些针对geometry列正当的操作没有意义也可能不返回GeoDataFrame。Geopandas函数
对字符串列表进⾏地理编码,返回⼀个GeoDataFrame,它包含在geometry列⽣成的点。可⽤的提供者
有googlev3,bing,google,yahoo,mapquest和openmapquest,**kwargs将作为参数传递给适当的地理编码器。python官方文档中文版
需要使⽤。请咨询选择的提供商的服务条款。
⽰例
>>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
>>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
>>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
>>> g = GeoSeries([p1, p2, p3])
>>> g
0 POLYGON ((0.0000000000000000
1 POLYGON ((0.0000000000000000
2 POLYGON ((2.0000000000000000
dtype: objec
⼀些地理操作返回标准的pandas对象。⼀个GeoSeries对象的area属性将会返回⼀个pandas.Series,它包含GeoSeries中每⼀项的⾯积。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论