Questions tagged «python»

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

1
如何从Python代码隐藏/显示QGisVectorLayer?
创建图层后,如何隐藏/显示它?我可以通过选择QGIS中的复选框来启用/禁用特定图层的渲染,但是我需要通过python代码以编程方式进行。 如何显示/隐藏(不删除)Python代码中的标签? 我正在寻找类似的东西: aLayer = self.addVectorLayer(uri.uri(), layerName, self.dbConn.getProviderName()) aLayer.Hide() .... aLayer.Show()



1
使用Python将ftp站点上的文件地理数据库复制到本地磁盘?
我想使用Python脚本下载位于ftp站点上的文件地理数据库。现在,我在考虑一种实现此目的的方法是将ftp地理数据库复制到计算机上的地理数据库。下面是我开始的脚本。有谁知道我可以如何更改此脚本,以便获得ftp gdb?谢谢 以下是基于提供的@om_hennners的最终工作代码。 import arcpy, os, sys from arcpy import env arcpy.env.overwriteOutput = True from ftplib import FTP directory = "/group/geodb" #location of gdb on ftp folder = "D:\\temp\\" out_gdb = "data.gdb" out_path = folder + os.sep + out_gdb copy_gdb = "hydro.gdb" # This is the gdb I would like …


5
如何解决大型镶嵌过程失败的问题?
我需要将大约550Gb的tif图像拼接在一起,而我尝试过的软件始终会失败。该区域已划分为多个区域,因此最小的区域大约有200个图块。 我在3.30 GHz的Intel Xeon E31245,DELL,16GB RAM,64位Win 7 Professional上使用了最新版本的ERDAS(Imagine和Mapper),ArcINFO和Global Mapper。多核(共4个),超线程(共8个)计算机。我的C有700GB的可用空间,而D有1.5TB的可用空间。 我正在研究使用Grass(以前从未有过),但是i.image.mosaic似乎只能处理4个文件……我的一些文件有600个图块。还有其他选择或开源软件可以尝试吗? 抱歉,我们不能使用镶嵌数据集(或其他软件中的等效数据),因为我们需要创建具有定义为ECW的无数据区域的区域,以便可以在任何GIS软件中将其打开并与较低分辨率/较旧版本结合使用新数据不无缝存在时的数据。 一些镶嵌文件在不同软件中的外观示例。Global Mapper / ERDAS很好,但是在arcgis中是不正确的。 -较旧的信息- 对不起,这张图纸很粗糙。因此,将彩色区域作为5个区域将最大的AOI中的无数据区域最小化。 在arcgis中,代码如下(这是作为模型运行的,而不是在python中运行,因为我无法获取tifList输入)。 arcpy.MosaicToNewRaster_management(tifList+";" +mask,RootOutput,"Tile1.tif","PROJCS['GDA_1994_MGA_Zone_55',GEOGCS['GCS_GDA_1994',DATUM['D_GDA_1994',SPHEROID['GRS_1980',6378137.0,298.257222101]],PRIMEM['Greenwich',0.0],UNIT['Degree',0.0174532925199433]],PROJECTION['Transverse_Mercator'],PARAMETER['False_Easting',500000.0],PARAMETER['False_Northing',10000000.0],PARAMETER['Central_Meridian',147.0],PARAMETER['Scale_Factor',0.9996],PARAMETER['Latitude_Of_Origin',0.0],UNIT['Meter',1.0]]","16_BIT_UNSIGNED","0.5","3","MAXIMUM","#") # Replace a layer/table view name with a path to a dataset (which can be a layer file) or create the layer/table view within the script # The following inputs …

2
元数据-使用python自动构建
我们有一个大型的(10,000多个)空间数据存储库(shp / gdb / tab向量和ecw / tif栅格,以及las,xyz和DEM数据),其中一些使用ANZLIC元数据编辑器在xml中有元数据记录。我想检查每个空间数据集是否具有关联的xml记录,并对照关联的空间文件检查投影,空间范围,源和大小。 我创建了一个基于arcpy的脚本,以从ESRI可读格式中提取此信息,但是不确定如何处理选项卡文件,更重要的是如何根据基于Anzlic Metaeditor的xml记录对其进行检查。 因此,如果我们有citypoints.shp / .tab,则应该将citypoints_metadata.shp / .tab.xml作为元数据记录-这与某些软件自动创建的citypoints.shp.xml是分开的。 另一个类似的论坛问题是使用ArcGIS 10.x的新方法是否支持ANZLIC元数据?但这并不能满足我的疑问(如何在ArcPy中读取MapInfo .tab文件),该要求不要求检查开放源代码/创意公共空间中是否存在有效记录并处理.tab(其他非esri)格式。?)。我还浏览了“ 寻找开源ISO元数据编辑器”中提到的软件。但它们都不自动生成基本元数据文件,也不允许将现有记录与源进行比较。

2
在GDAL中制作的GeoTIFF在Arc / QGIS中加载时没有最小/最大范围
我正在使用GeoTIFF驱动程序在GDAL中创建一些浮点栅格。当我将生成的图像加载到QGIS或Arc中时,默认的符号系统将最小值设置为-3.40282e38,将最大值设置为3.40282e38,因此栅格看起来完全是灰色的。有没有一种方法可以直接将实际范围写入GeoTIFF,以便在将其加载到GIS程序中时自动很好地缩放直方图?我尝试过创建默认的直方图,如下所示: rasterMin, rasterMax = raster.GetRasterBand(1).ComputeRasterMinMax() raster.GetRasterBand(1).SetDefaultHistogram(rasterMin, rasterMax, 255) 但是我收到一个看起来像是绑定问题的错误: File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 846, in SetDefaultHistogram return _gdal.Band_SetDefaultHistogram(self, *args) TypeError: not a sequence 关于我该怎么办,或者如果我做错了什么建议?


3
在Python中下载和处理栅格文件?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为地理信息系统堆栈交换的主题。 3年前关闭。 我是python的新手,正在寻求对许多人来说可能微不足道的问题的指导。 有没有一种方法可以在python脚本中使用“ wget”从服务器下载栅格文件并在同一脚本中对其进行处理?
11 python 

2
我如何评价风景名胜的道路?
相对GIS新手在这里。 我一直在进行个人项目,以评估道路骑摩托车的舒适程度。我编写了一个Python程序来处理TIGER数据集(PostGIS)中的道路数据并应用少量指标: 道路变化(弯曲度) 道路高程变化 道路是否经过水域 这条路穿过公园吗 应用指标的结果是一个良好的开端,但远非完美。因此,我正在尝试确定要应用的一些新指标。 检查道路周围的土地覆盖率。沿着起伏的山坡骑行比森林要好,而森林比工业园区要好。 路况(铺砌或未铺砌) 停车标志,路灯的数量 利用视域分析来检查道路上是否确实可见水体 识别山景并使用视域分析来查看是否可以从公路上看到山(想想大烟山) 应用历史流量数据 我需要一些GIS专业人员的建议。这些听起来可行,甚至有意义吗?你能想到我应该尝试的其他方法吗? 最重要的是,我可以从哪里获得有效构想的数据?
11 python  data  analysis 

1
使用Python退出脚本
我有一个正在使用的ArcGIS Python脚本,如果没有足够的可用数据,我希望能够退出该脚本。我尝试直接使用sys.exit(),但是这会在ArcMap中产生我想避免的异常。我发现此线程建议使用try块,因此我做了以下功能: def quit_script(message): log_msg(message) # already defined; writes a message to a file if log_loc: output.close() # close the file used with log_msg() try: sys.exit() except SystemExit: pass 不幸的是,那也不起作用。好吧,它不会再在ArcMap上造成该错误,但是也不会退出。现在,我在if / else语句中拥有大部分代码,但这很丑陋。还有其他建议吗? 谢谢!布赖恩

2
在球形墨卡托与区域UTM中测量距离
我在WGS84纬度/经度中有积分,我想测量它们之间的“小”(小于5公里)距离。 我可以使用http://www.movable-type.co.uk/scripts/latlong.html中的Haversine公式,效果很好。 不过,我想使用Python Shapely库,这样我不仅可以进行距离操作,而且可以进行更多的操作,并且因为在我正在使用的规模上,平整的地球足够近似。为了将地理坐标可靠地投影到笛卡尔坐标,我使用的是Python的proj4,但是似乎会得到比我想要的更大的错误。 如果我使用本地UTM区域,则会出现两米长的正弦波之间的差异,这很好。但是我不想解决UTM区域(这些点可能在世界范围内),因此我尝试使用“球形墨卡托”,但现在正弦距离与预计距离之间的差异远超过100%。这对球形墨卡托真的合适吗?我真正想要的是一个可行的笛卡尔投影,用于在世界任何地方彼此之间5公里之内的两个点。 from shapely.geometry import Point from pyproj import Proj proj = Proj(proj='utm',zone=27,ellps='WGS84') #proj = Proj(init="epsg:3785") # spherical mercator, should work anywhere... point1_geo = (-21.9309694, 64.1455718) point2_geo = (-21.9372481, 64.1478206) point1 = proj(point1_geo[0], point1_geo[1]) point2 = proj(point2_geo[0], point2_geo[1]) point1_cart = Point(point1) point2_cart = Point(point2) print "p1-p2 (haversine)", …

2
通过地理箱中的边界框进行过滤?
我在EPSG:4326中有一个geopandas数据框,我将制作一个新的数据框,其中包含属于某个边界框的所有行。 首先,我得到了我关心的边界框(实际上是另一个数据框的边界框): print df_sussex.total_bounds [ -1.57239292 50.57467674 0.14528384 51.27465152] 然后,我制作一个仅由该边界框组成的数据框: pts = gpd.GeoDataFrame(df_sussex.total_bounds) 最后,我尝试获取与该边界框相交的所有特征: sac_sussex = gpd.overlay(pts, df_sac, how='intersection') 但这给了我AttributeError: No geometry data set yet (expected in column 'geometry'。 我究竟做错了什么?
11 python  geopandas 

1
Geopandas线多边形相交
我正在尝试查找多条线与两个不同地理数据框的多边形相交的位置: from shapely.geometry import Polygon, LineString import geopandas as gpd polygon = Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]) line1 = LineString([(0.5, 0.5), (0.7, 0.7)]) line2 = LineString([(0.9, 0.9), (0.2, 0.6)]) poly_gdf = gpd.GeoDataFrame(geometry=[polygon]) line_gdf = gpd.GeoDataFrame(geometry=[line1, line2]) 这就是上面的地理数据框的样子(一个具有多边形,另一个具有两条线)。在我看来,两条线都与多边形相交: 但是,相交的输出非常令人困惑: print(line_gdf.intersects(poly_gdf)) 0真实 1错误 print(line1.intersects(polygon)) print(line2.intersects(polygon)) 真正 真正 …

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.