Questions tagged «python»

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

1
为什么在独立的PyQGIS处理脚本中导入顺序很重要?
在运行独立的PyQGIS处理脚本时遇到了一个奇怪的问题。脚本中的导入顺序会影响其正常执行。 您可以通过打开Python控制台并输入以下脚本(我使用GNU / Linux,QGIS 2.6.1,处理插件v.2.2.0-2和Python 2.7.3)来重现该问题: # Prepare the environment import sys from qgis.core import QgsApplication from PyQt4.QtGui import QApplication app = QApplication([]) QgsApplication.setPrefixPath("/usr", True) QgsApplication.initQgis() # Prepare processing framework sys.path.append('/home/YOUR_USER/.qgis2/python/plugins') from processing.core.Processing import Processing Processing.initialize() print Processing.getAlgorithm("qgis:creategrid") # Exit applications QgsApplication.exitQgis() QApplication.exit() 您应该获得: ALGORITHM: Create grid HSPACING <ParameterNumber> VSPACING …

1
OGR / GDAL线程导致内核利用率低
我正在尝试使用ogr / gdal处理一些栅格数据,但似乎无法充分利用计算机上的所有内核。当我仅在单个内核上运行该进程时,该内核的利用率为100%。当我尝试拆分为多核时(在下面的示例中,通过对x偏移量进行分块并将它们放入队列中),我的8个内核中的每个内核都得到了可悲的利用。看起来每个内核的利用率仅相加达到100%(例如,每个内核的利用率为12.5%)。 我担心使用相同的数据源是瓶颈,但是后来我为每个核心复制了底层栅格文件...并且核心利用率仍然很低。这使我相信,ogr或gdal某种程度上表现得像瓶颈共享资源,但是我在网上找不到任何东西。任何帮助将非常感激! 这是在每个辅助线程中运行的“帮助器”功能: def find_pixels_intersect_helper(datasource, bounds_wkt, x_min, x_max): bounds = ogr.CreateGeometryFromWkt(bounds_wkt) rows_to_write = [] for x_offset in range(x_min, x_max): for y_offset in range(datasource.RasterYSize): pxl_bounds_wkt = pix_to_wkt(datasource, x_offset, y_offset) pxl_bounds = ogr.CreateGeometryFromWkt(pxl_bounds_wkt) if pxl_bounds.Intersect(bounds): rows_to_write.append(['%s_%s' % (x_offset, y_offset), pxl_bounds.Centroid().ExportToWkt()])

3
如何在Fiona中添加对FileGDB(Esri文件gdb API)驱动程序的支持?
对此有很多问题,但没有一个解决了我的问题。 我有一台机器有: Windows 7 x64 Python 3.4.3 x64 @中安装:gdalinfo --version --> GDAL 1.11.4, released 2016/01/25; gdal是GDAL-1.11.4-cp34-none-win_amd64.whl从这里通过轮子安装的 GDAL已安装到中C:\Python34\Lib\site-packages\osgeo。在那里,我有一堆用于gdal和ogr以及.pyd文件的.exe文件。 安装了fiona:是Fiona-1.6.3-cp34-none-win_amd64.whl从同一网站上的wheel安装的。 我能够运行以下代码,并且可以成功执行: import gdal import ogr from gdalconst import * shp = r"C:\Data\GIS\PTS.shp" driver = ogr.GetDriverByName('ESRI Shapefile') dataset = driver.Open(shp) layer = dataset.GetLayer() layer.GetFeatureCount() schema = layer.schema fields = [field.GetName() for field in …



1
GeoPandas to_file()保存不带坐标系的GeoDataFrame
我有 GeoPandas 0.2.1 py27_0 菲奥娜1.7.0 np110py27_1 Python 2.7.10 安装在Anaconda 2-4.1.1-Windows-x86环境中。我能够GeoDataFrame通过读取输入数据集并进行操作来构造数据,但是保存输出数据集不会保留坐标系。 import geopandas as gpd world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) world.to_file(driver='ESRI Shapefile',filename=r'C:\GIS\Temp\world_out.shp') 在world_out.shp不包含的特征和源shape文件的模式,但坐标系是未定义的(<Unknown>)。该world_out.prj文件为0 KB,不包含任何内容。 out = gpd.read_file(r'C:\GIS\Temp\world_out.shp') print out.crs >>> {} 我已经测试过使用纯Fiona执行此操作,并且可以很好地保存crs信息: import fiona datasrc_path = r'C:\Program Files (x86)\ArcGIS\Desktop10.4\TemplateData\TemplateData.gdb' with fiona.drivers(): with fiona.open(datasrc_path,layer='cities') as source: meta = source.meta meta['driver'] = 'ESRI Shapefile' meta['layer'] …


4
没有名为“ osgeo”的模块
我已经安装了GDAL并在命令行中进行了检查,它正在运行,当我在命令行中运行gdal2tiles.py时,它可以工作,但是当我使用python IDLE运行相同的文件gdal2tiles.py时,我得到了“没有名为'osgeo的模块'”错误。你能帮忙吗
13 python  gdal  osgeo  osgeo4w  pyqt4 

1
更改最小边界框算法
我正在尝试创建类似于最小边界框的算法(尽管最终可能看起来不像它)。在这种情况下,角度将作为参数传递,并且给定角度,我需要覆盖所有点/多边形的最小矩形。到目前为止,我的思路是找到点的中心(质心算法),然后从中创建两条与参数角相同的平行线,以及两条与之垂直的线。然后使用迭代将这些线向外(沿相反的方向)移动,直到包含所有点。也不必是确切的最小边界框,近似的作品(我想这取决于每个迭代步骤的大小)。 到目前为止,这是我的代码。我已经将所有多边形分解为一个。然后,我采用凸包来减少顶点。然后,我将所有顶点都放入列表中-不确定是否有帮助... a = layer.getFeatures() for feat in a: geom = feat.geometry() a = geom.convexHull() vertexId = QgsVertexId() vertices = [] b = a.constGet().nextVertex(vertexId) while b[0]: vertices.append(b[1]) b = a.constGet().nextVertex(vertexId) 注意:在某些时候,我需要传递盒子的角度。我正在使用QGIS 3,并且需要在Python中创建它。图层“图层”具有一种几何形状,即所有其他多边形的溶解多边形-也许不需要迭代即可访问它。 请让我知道我是否应该传递更多详细信息。

2
QGIS无法加载
我使用pip(pandas,scipy,simplekml)安装了一些python库,自从每次尝试加载QGIS以来,我都收到此错误: Warning: loading of qgis translation failed [/usr/share/qgis/i18n//qgis_en_US] Warning: loading of qt translation failed [/usr/share/qt4/translations/qt_en_US] Warning: QCss::Parser - Failed to load file "/style.qss" Warning: QVariantMap DBusMenuExporterDBus::getProperties(int, const QStringList&) const: Condition failed: action Warning: QVariantMap DBusMenuExporterDBus::getProperties(int, const QStringList&) const: Condition failed: action QH6248 qh_lib_check: Incorrect qhull library called. Caller uses reentrant …

1
使用rasterio读取S3 Sentinel-2图像文件
使用rasterio打开Sentinel-2 AWS .jp2图像文件(当前由Sinergise托管,可以在此处找到)后,我当前遇到“访问被拒绝”错误。 我的代码如下所示: import rasterio access_key = '*****************' secret_access_key = '***********************' region_name = 'eu-central-1' Session = rasterio.env.Env(aws_access_key_id=access_key, aws_secret_access_key=secret_access_key, region_name=region_name) url = 's3://sentinel-pds/tiles/10/S/DG/2015/12/7/0/B01.jp2' with Session: with rasterio.open(url) as dataset: print dataset 响应为: --------------------------------------------------------------------------- CPLE_AWSAccessDenied Traceback (most recent call last) <ipython-input-1-4f6da7274649> in <module>() 12 13 with Session: ---> 14 with rasterio.open(url) …

2
从熊猫数据框制作shapefile?
我想使用lon和lat行从Pandas Data Frame构造一个shapefile。 我有一个csv文件,并用熊猫对其进行处理以制作一个易于处理的数据框 是否可以在不逐行循环的情况下执行此操作?

2
使用QGIS计算点到线的最短距离?
对于具有很大数据集的QGIS中的一系列地址点,计算距最近道路的距离的最佳方法是什么?(QGIS 2.0.1,Win XP) 我阅读了以前类似问题的答案: 在QGIS中测量线与点之间的距离 在PyQGIS中绘制垂直线? 在QGIS中计算点和多边形之间的最小距离? /programming/16448402/distance-of-point-feature-to-nearest-polygon-in-r 不过: MMQGIS插件查找到线网最近节点的距离,而不是到线的最短(垂直)距离。 R和Python建议的脚本可以正确地用于小型数据集,并且可以在建模器中实现,但是对于我的工作,我有530个点和一个具有约135'000个要素的区域性街道图层,并在所有要素之间循环,然后以最短的距离进行操作所有点将花费大量时间 我在使GRASS在QGIS 2.0.1中工作时遇到问题(QGIS中的GRASS无法工作(Windows XP))。
12 qgis  python  r  distance 

3
使用PyQGIS / Python与另一个图层的要素相交时是否拆分要素?
我有一个缓冲层(绿色多边形),当它越过障碍(蓝线)时,我想将其分成两个多边形。我一直在尝试使用“ splitGeometry”方法,但是我无法使其正常工作。到目前为止,我的代码是这样的: while ldbuffprovider.nextFeature(feat): while barprovider.nextFeature(feat2): if feat.geometry().intersects(feat2.geometry()): intersection = feat.geometry().intersection(feat2.geometry()) result, newGeometries, topoTestPoints=feat.geometry().splitGeometry(intersection.asPolyline(),True) 结果(错误)返回1,newGeometries返回空列表。任何帮助是极大的赞赏。

2
将GTiff栅格的时间序列堆栈转换为单个NetCDF
从gdal-dev邮件列表移出: 在2013年9月2日星期一晚上7:09,David Shean写道: 嗨,大家好,我正在尝试将具有相同投影/范围/分辨率的GTiff栅格时间序列打包为单个NetCDF文件进行分发。我花了一个小时来咨询在线文档,并且使用gdal_translate,gdalbuildvrt和gdalwarp都没有成功。 有使用现有的gdal命令行实用程序执行此操作的简单方法吗?在使用NetCDF Python API求助于自定义解决方案之前,我想过要问一下。 谢谢。-大卫 在2013年9月3日,星期二,上午10:15,Etienne Tourigny写道: 您想要的可能超出了gdal的范围。它将需要一些聪明的元数据管理,以便gdal_translate将它们放在一个文件中... 我建议您使用gdal_translate将它们全部转换为netcdf,然后使用python-netcdf4(而不是numpy / scipy中的那个)将它们堆叠在时间维度上。 2013年9月3日,星期二,上午7:55,“ Signell,Richard”写道: 大卫,如果您将问题发布到GIS stackexchange组 /gis//上, 我将提供示例代码,该代码应该会有所帮助。 -丰富 ==================== PDT更新9/3/13 17:04 这是我的输入数据集之一的gdalinfo输出: gdalinfo 20120901T2024_align_x+22.19_y+3.68_z+14.97_warp.tif Driver: GTiff/GeoTIFF Files: 20120901T2024_align_x+22.19_y+3.68_z+14.97_warp.tif Size is 10666, 13387 Coordinate System is: PROJCS["unnamed", GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]], PROJECTION["Polar_Stereographic"], …
12 python  gdal  netcdf 

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.