我尝试使用PyQgis API在Python上加载shapefile但无济于事.我仔细检查了shapefile的路径,发现它是正确的.QGIS模块似乎也进口得很好.当我在QgsRegistry中检查提供者列表时,它什么都不返回.我可以知道我错过了什么或者我应该如何解决问题?
我使用的是Ubuntu 12.04,QGIS 2.4.0 Chugiak和Python 2.7.3.先感谢您!
以下是我的输出和代码:
"/usr/bin/python2.7 /home/victorzhiyulee/IdeaProjects/Delineation/select_dun_calculate_print.py应用程序状态:QGIS_PREFIX_PATH的环境变量:
前缀:在/ usr/bin中/ QGIS插件路径:在/ usr/bin中/ QGIS/lib中/ QGIS/plugins包数据路径:/ usr/bin/qgis/share/qgis活动主题名称:
活动主题路径::/images/themes //默认主题路径::/images/themes/default/SVG搜索路径:/ usr/bin/qgis/share/qgis/svg /用户数据库路径:/usr/bin/qgis/share/qgis/resources/qgis.db
提供商列表无法找到OGR提供商!文件已存在; 路径是正确的('/home/victorzhiyulee/Desktop/dun.shp','dun','ogr')图层无法加载!
处理完成,退出代码为0"
__author__ = 'victorzhiyulee'
# Importing QGis API
# Importing OGR & OSR
import os
import sys
import PyQt4.QtCore
import PyQt4.QtGui
import qgis.core
import qgis.gui
from qgis.core import *
from qgis.gui import *
from osgeo import ogr, osr
from PyQt4.QtCore import *
# Supply path to the QGis resources on your PC
# noinspection PyTypeChecker
QgsApplication.setPrefixPath("/usr/bin/qgis", True) …Run Code Online (Sandbox Code Playgroud) 我有一个由各个州组成的美国多边形图形文件,作为其属性值。此外,我还有一些数组,用于存储我也感兴趣的点事件的纬度和经度值。从本质上讲,我想“空间连接”点和面(或执行检查以查看每个面和面[即状态])点),然后求和每个州的点数,找出哪个州的“事件”数最多。
我相信伪代码将是这样的:
Read in US.shp
Read in lat/lon points of events
Loop through each state in the shapefile and find number of points in each state
print 'Here is a list of the number of points in each state: '
Run Code Online (Sandbox Code Playgroud)
任何库或语法将不胜感激。
根据我的判断,OGR库是我所需要的,但是我在语法上遇到了麻烦:
dsPolygons = ogr.Open('US.shp')
polygonsLayer = dsPolygons.GetLayer()
#Iterating all the polygons
polygonFeature = polygonsLayer.GetNextFeature()
k=0
while polygonFeature:
k = k + 1
print "processing " + polygonFeature.GetField("STATE") + "-" + str(k) + " of " + str(polygonsLayer.GetFeatureCount())
geometry = …Run Code Online (Sandbox Code Playgroud) 我正在尝试从大量 shapefile 中获取几何数据到数据库(Google 数据存储)中。问题是,我不需要使用地图,我只需要坐标,所以我只需要数字坐标。理想情况下,我想使用 CSV,但任何纯文本都可以使用。我有一台 Mac 并且已经能够安装 QGIS(我也尝试过 udig 但界面令人困惑)。虽然将 shp 文件作为矢量图层加载到 QGIS 中很容易,但我不知道如何导出几何图形,或者即使可能。
有谁知道如何从 shp 文件中提取纯文本几何图形?理想情况下使用 QGIS,但任何方法都将不胜感激。
我正在创建一个项目,可以花费很长时间和用户并将其保存在数据库中,然后服务器将提取这些坐标并动态获取卫星图像.我如何拍摄卫星图像,是否可以使用哪些工具?
我正在Rasterize (write over existing raster)QGIS 中使用该工具 - 但是,如果您从命令行或 python 调用 gdal,则会出现同样的问题。
我正在将矢量特征刻录到栅格中,其值基于属性表中的字段。
一切正常,工作正常,除非目标栅格大于 4GB BigTiff 而不是常规 geotiff。如何使用错误中提到的 bigtiff 选项?
错误是:
'ERROR 1: TIFFAppendToStrip:Maximum TIFF file size exceeded. Use BIGTIFF=YES creation option.
Run Code Online (Sandbox Code Playgroud)
代码如下:
gdal_rasterize -a burn_value -l shapefile_name C:/Users/Cate/Folder/shapefile_name.shp C:/Users/Cate/Folder/raster_name.tif
Run Code Online (Sandbox Code Playgroud) 我有一个包含数据的 csv 文件,其中包含如下数据
POLYGON((79.87749999947846 6.997500000409782,79.88249999947845 6.997500000409782,79.88249999947845 7.002500000409782,79.87749999947846 7.002500000409782,79.87749999947846 6.997500000409782))
我想通过在 qgis 中使用这个数据字段来绘制一个多边形。我怎样才能做到这一点?
当在启用 Potgis 的数据库上创建新用户时,我遇到了一个奇怪的问题:该新用户无法访问 postgis 扩展,而早期创建的用户可以。
使用我的用户帐户,我得到以下输出:
mydb => SELECT postgis_version();
postgis_version
---------------------------------------
2.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)
Run Code Online (Sandbox Code Playgroud)
对于新用户,我得到以下信息:
mydb => SELECT postgis_version()
mydb-> ;
ERROR: function postgis_version() does not exist
LINE 1: SELECT postgis_version()
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Run Code Online (Sandbox Code Playgroud)
QGIS 还提示我 postgis 未激活:
2018-01-23T16:38:13 1 No PostGIS support in the database.
Run Code Online (Sandbox Code Playgroud)
我正在连接到完全相同的数据库。用户确实有权访问公共模式和geometry_columns 表。
我在这里有点迷失,因为根据我的信息,Postgis 是数据库级别的扩展,它应该适用于所有用户。
我正在尝试使用该sf包从 GeoPackage 文件中删除矢量图层。“删除”是指永久删除而不是覆盖或更新。我知道该delete_layer选项,但据我所知,这仅用于在将图层替换为同名图层之前删除图层。
不幸的是,我使用非标准编码为 GeoPackage 编写了一个带有名称的层,这有效地使整个 gpkg 文件在 QGIS 中无法读取。因此,我试图找到一种通过 R 删除它的解决方案。
我刚刚在我的Ubuntu 10上安装了Quantum GIS 1.8.0,我想添加MySql表作为源但没有连接到mysql的选项可以任何人指导我如何连接到mysql?
Qgis中可用数据库类型的选项是MSSQL,ODBC,PostgreSQL和ESRI个人GEO数据库.
我正在使用 Qgis 3.4.9。我该如何修复 修复错误:NameError: global name 'QgsMapLayerRegistry' is not defined。
from qgis.core import QgsMapLayerRegistry 在 Qgis 3.4.9 中不起作用
QgsMapLayerRegistry.instance().addMapLayer(point_layer)
Run Code Online (Sandbox Code Playgroud) qgis ×10
gis ×5
python ×2
shapefile ×2
data-science ×1
gdal ×1
geolocation ×1
geopackage ×1
google-maps ×1
mysql ×1
php ×1
postgis ×1
postgresql ×1
r ×1
r-sf ×1
raster ×1
rasterizing ×1
shapely ×1