Questions tagged «python»

Python是许多GIS程序中使用的一种开源解释型编程语言。

4
使用GDAL编程的最佳语言
我将开始创建程序来处理来自PostGIS服务器的地理数据,并使用GDAL。 根据您的经验,用最好的语言来编程吗?我可以使用Perl和Python进行编程,但想了解该语言,并提供更多可重复使用的代码,示例,库等。
20 python  postgis  gdal 

3
使用GDAL在Python中平滑/插值栅格?
我正在用Python开发,并使用OSGEO的GDAL来处理栅格和shapefile并与之交互。 我想获取一个具有点特征的shapefile并将其插入到表面栅格中。现在,我使用的是'RasterizeLayer'方法,该方法将点要素中的值刻录到栅格中(使用所有nodata值进行设置),但将所有未触及的像素保留为'nodata'值。因此,我剩下的是棋盘式栅格。 使用RasterizeLayer之后,我得到了什么: 我想要的最终产品是: 我相信我要寻找的功能在arcgisscripting导入中称为'Spline_sa()'。 GDAL是否具有类似的功能,或者有其他方法来获得所需的输出?


5
GeoPandas:查找其他数据框中的最近点
我有2个地理数据框: import geopandas as gpd from shapely.geometry import Point gpd1 = gpd.GeoDataFrame([['John',1,Point(1,1)],['Smith',1,Point(2,2)],['Soap',1,Point(0,2)]],columns=['Name','ID','geometry']) gpd2 = gpd.GeoDataFrame([['Work',Point(0,1.1)],['Shops',Point(2.5,2)],['Home',Point(1,1.1)]],columns=['Place','geometry']) 我想为gpd1中的每一行找到gpd2中最近点的名称: desired_output = Name ID geometry Nearest 0 John 1 POINT (1 1) Home 1 Smith 1 POINT (2 2) Shops 2 Soap 1 POINT (0 2) Work 我一直在尝试使用lambda函数使其工作: gpd1['Nearest'] = gpd1.apply(lambda row: min_dist(row.geometry,gpd2)['Place'] , …

4
使用什么python网络映射框架?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我对开发Web映射应用程序感兴趣。我对Python比较熟悉,因此我正在寻找python框架。我有什么选择?每个选项的优缺点是什么? 我正在寻找一个简单的选项,该选项可以在地图上显示地理信息,并允许用户使用“信息”获取更多详细信息。在这一点上,我不需要任何查询或动态功能。我希望有一个有据可查的选项。

5
查找两个多边形是否在Python中相交?
我正在寻找一种算法,高级解决方案,或者甚至一个可以帮助我确定Python中两个多边形是否相交的库。 我在两个不同的数组中具有两个多边形的顶点(这些是没有任何孔的单部分多边形)。多边形是2D(即仅X和Y坐标) 我想制作一个函数,该函数将返回一个布尔值,指示这两个多边形是否相交。 请注意,我不能使用arcpy或其中的任何arcgis组件。 您可以建议这样做的算法或库吗?


1
计算特殊邻域的焦点统计?
我正在寻找在指定条件附近的栅格中每个像元的焦点统计信息。 背景-我有三个二进制栅格,每个栅格代表一种感兴趣的植被类型。我想计算研究区域内任何单元格(例如,总和/总单元格)在20 km ^ 2之内每种植被类型的覆盖率。问题是我不能在每个像元周围使用简单的圆形或正方形邻域,因为如果这样做,用于计算总和的搜索区域将包含我研究区域之外的区域。此例外非常重要,因为统计数据将用作栖息地模型的输入,并且不能将我研究区域之外的区域视为可能的栖息地-它们已被城市化。包括它们会给我错误的统计数据。所以,我n由覆盖符合我的标准的区域所需的像元数确定)。标准是它们不属于市区范围内。我在想应该使用某种形式的细胞自动机。我从来没有在CA工作过。 我想我想要的是入门代码,或指向正确方向的东西。 回复以下评论: 假设我正在为研究站点边界上的一个单元格计算此统计信息。如果我将研究区域以外的所有区域都分配为零(或忽略NoData),那么我将获得一个统计数据,该统计数据大约代表了我感兴趣的区域覆盖范围的一半。因此,在约10 km ^ 2的区域中,覆盖范围百分比,而不是20 km ^ 2的区域。由于我正在研究家庭范围的尺寸,因此这一点很重要。邻居必须改变形状,因为那是动物观看/使用景观的方式。如果他们需要20 km ^ 2,他们会改变形状或家园。如果我不检查忽略NoData,则单元格输出将为NoData-NoData没有帮助。 截至2014年10月24日的“进度” 这是到目前为止我使用Shapely和Fiona提出的代码: import numpy as np import pprint import shapely from shapely.geometry import* import fiona from fiona import collection import math traps = fiona.open('C:/Users/Curtis/Documents/ArcGIS/GIS_Data/occurrence/ss_occ.shp', 'r') study_area = fiona.open('C:/Users/Curtis/Documents/ArcGIS/GIS_Data/Study_Area.shp', 'r') for i in study_area: …

2
编写独立的PyQGIS脚本时导入qgis.core的问题
我试图在Windows 7中使用qgis.core和其他各种qgis库编写一个独立的python脚本。 我在这里发现了一个有关此主题的老问题:使用PyQGIS编写独立的Python脚本吗?并通过使用以下指南来遵循其建议:http : //docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#python-applications 建议的代码为: set PYTHONPATH=c:\qgispath\python 其次是: set PATH=C:\qgispath;%PATH% 我发现IDLE不喜欢“开始时设置”,因此我的代码如下所示: PYTHONPATH="C:\OSGeo4W64\apps\qgis\python" PATH="C:\OSGeo4W64\apps\qgis\python\qgis\core;%PATH%" import qgis.core 我得到: Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> import qgis.core ImportError: No module named qgis.core 我已经尝试过所有可以想到的路径变体,包括最后删除;%PATH%“(看起来有点多余),但无法找到更多信息。有人对我可能有的想法有什么想法吗?出问题了吗? 编辑: 看到Luigi Pirelli的评论后,我现在尝试: >>> PYTHONPATH="C:/OSGEO4~1/apps/qgis/./python\qgis" >>> import qgis.core Traceback (most recent call last): File …
18 qgis  python  pyqgis  windows 

1
GDAL / Python:如何从SpatialReference获取坐标系名称?
在Python中,使用GDAL,我提取了栅格投影作为WKT字符串,如下所示: wkt = dataset.GetProjection() # wkt is 'PROJCS["GDA_1994_Transverse_Mercator",GEOGCS["GDA_1994",DATUM["GDA_1994",SPHEROID["GRS_1980",6378137,298.2572221010002],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",10000000],UNIT["Meter",1]]' 使用WKT字符串,我可以创建一个SpatialReference实例,如下所示: src = osr.SpatialReference() src.ImportFromWkt(wkt) 这很容易。我可以src很容易地从诸如UTM区域等中提取投影的几个参数。但是我不知道如何提取类似投影名称的内容,即"GDA_1994_Transverse_Mercator"。这肯定是有可能的,但是就其所有用途而言,Python API文档也可能不存在。 如何提取投影和地理坐标系的名称?

8
使用什么软件从无人机航拍图像制作数字高程模型?
我有一台无人驾驶飞机(UAV,又称无人驾驶飞机),想用它来创建数字高程模型并在较小的区域(10 km2)上进行正马赛克。我的平台将能够产生海拔约120米(400英尺)的重叠影像。 几种商业产品似乎可以提供完整的解决方案。例如。Pix4D和Dronemapper。 但是,我主要是在寻找解决方案,以便可以更好地控制流程,还可以设置自己的批处理程序。Python和其他开源工具很有趣。 我有什么选择?

4
是否存在用于请求WMS / WFS并另存为图像/ PDF的Python库?
我想知道是否有Python开源GIS库,它具有API以支持从另一个GIS服务器(例如GeoServer)调用WMS / WFS,然后将响应数据(WMS底图和WFS层)保存为图片。 有什么建议吗? 感谢您的任何投入! 更新: 我想做的是通过使用OpenLayers作为前端和Django作为服务器的Map Printing服务。客户端用户设置范围和图层,然后将打印请求(指的是参数,即地图范围,图层名称)发送到服务器,然后服务器接管此请求并使用请求参数再次调用WMS / WFS,保存回复为PDF,然后将此PDF链接导出到客户端。 困难的部分是服务器如何调用WMS / WFS并将这些响应合并/叠加在一起(即,将这些地图/图层放在一起,因为WMS通常是基础地图,WFS指向要素图层),最后保存此组合对象作为图像。 在当前答案中,urllib似乎是一个不错的选择,但是我不确定如何将这些响应(WMS,WFS)组合在一起;OWSLib似乎也是另一个不错的选择,但是它表明它是一个客户端编程工具,我有点困惑它是否适合我的使用... 任何其他进一步的投入??? 欣赏!

8
为Python安装GDAL和OGR?
这篇文章是社区维基。编辑现有答案以改善此职位。它当前不接受新的答案。 我正在用Python开发一些代码,并且想使用GDAL / OGR python绑定。我需要安装GDAL和OGR python绑定的最低数量是多少? 如果我只想从Python使用GDAL / OGR,最简单的安装方法是什么? 我正在寻找适用于Mac和Windows的答案。 GDAL在Python软件包索引(PyPi)中列出,但我不明白如何安装其依赖项(libgdal和libgdal和numpy的头文件)。也许我需要做的就是安装numpy,然后在某处获取libgdal,如果是,在哪里?Windows安装除了 libgdal及其头文件外是否还需要Windows Binaries ? 如何确保为我的Python版本(2.5、2.6、2.7、3)获得正确的python绑定? 为了使用Python中的GDAL和OGR,必须对PATH环境变量进行更改,还是可以通过我的site-packages文件夹和典型import语句访问所有内容? 这些问题与此问题相关,但不能回答: 在Mac OS X上将GEOS,PROJ,GDAL / OGR安装到python virtualenv中。 如何在Windows上使用Python安装GDAL? 我应该注意,FWTools,OSGeo4W和kyngchaos提供了带有Python绑定的ogr和gdal,并且非常出色,但是FWTools和OSGeo4W附带了自己的python,而不是充当现有python安装的库,并且kyng chaos框架似乎是仅适用于OSX。
18 python  gdal  ogr 

4
使用OGR和Python获取多边形的所有顶点
我在使用Python OGR API时遇到了一些麻烦。我想做的是获取多边形外环每个顶点的所有坐标。 这是我到目前为止所拥有的: import osgeo.ogr import glob path = "/home/woo/maps/" out = path + 'output.txt' file = open(out,'w') for filename in glob.glob(path + "*.shp"): ds = osgeo.ogr.Open(filename) layer1 = ds.GetLayer(0) print layer1.GetExtent() for feat in layer1: geom = feat.GetGeometryRef() ring = geom.GetGeometryRef(0) points = ring.GetPointCount() #Not sure what to …

1
为什么要在GDAL Python中关闭数据集?
我经常在Python GDAL代码中看到人们在脚本结束时关闭数据集。为什么在Python GDAL中关闭数据集有意义?如果不这样做会不会有后果? import gdal # open dataset ds = gdal.Open('test.tif') # close dataset ds = None
17 python  gdal 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.