地理信息系统

制图师,地理学家和GIS专业人员的问答

3
是否将任意代码添加到ArcGIS ModelBuilder?
有什么方法可以向ArcGIS模型添加任意代码段? 我设想类似于高级标签或字段计算器中的表达式构建器的“显示代码块” 。 例如,我目前的项目可以从获取运行该工具的用户的用户名中大大受益。我知道在python中这很简单import os; os.environ.get('USERNAME')。我想我可以将该代码段编写为get_username.py,将其添加到Arccatalog中的工具箱中,然后将该工具添加到模型中,并将其用作当前工具的必需模型参数。这么小的事情要做很多工作,下次我可能想要其他东西,例如内联变量替换或复合变量。 我认为,可以以通用的,广泛有用的方式来使用代码段工具或类似工具来满足所有这些需求。

2
查看比例地形图时,我的距离是多少?
我公司的一位密友问我一个有关地形比例尺地图(1:25.000)的问题, what was the altitude to a location in km (as you are viewing Earth from space) when he was viewing the map from 1 meter away? 这是一个非常有趣的问题,我在GIS世界中使用比例尺地图已有很长时间了,但是我从未想过从地形图上看到的可视高度是多少... 如果您知道任何公式,请分享您的解释...



1
使用数据驱动页面创建表的Python脚本
我正在尝试转换一些python脚本,以显示位于特定数据驱动页面内的功能表(基于dbf)。到目前为止,我已经使脚本成功地能够将地图刷新到特定的表,但是它不会更新表。 我将其设置为三个文本框,当用户从ArcToolbox运行脚本时,应使用三个特定字段进行更新。 关于为什么我的表没有更新的任何建议? import arcpy, sys, os #Reference current MXD mxd = arcpy.mapping.MapDocument("current") #Get input parameter Name = arcpy.GetParameterAsText(0) #Reference data frames mapatlasDF = arcpy.mapping.ListDataFrames(mxd, "Layers")[0] locatorDF = arcpy.mapping.ListDataFrames(mxd, "Locator Map")[0] #Reference appropriate layers atlasLyr = arcpy.mapping.ListLayers(mxd, "PinalCreekMapAtlas_HalfMile", mapatlasDF)[0] locatorLyr = arcpy.mapping.ListLayers(mxd, "Locator Map", locatorDF)[0] atlasoutlineLyr = arcpy.mapping.ListLayers(mxd, "Map Atlas …

3
将复杂的shapefile划分为网格
我有一个具有多边形/多多边形特征的相当详细的shapefile(文件约为500mb)。它实际上是整个世界的shapefile,其特征代表海岸线。我需要使用网格划分此数据。明确地说,我不想对数据进行“排序”,而是将多边形实际切成小块。我知道之前曾有人问过这个问题,但是我发现的解决方案对我不起作用。 我试过了: 使用QGIS并将我的shapefile内容与矢量网格相交-结果非常糟糕。大多数主要陆地都神奇地消失了,尽管有时似乎有较小的一块土地。我应该注意,这种方法对简单得多的数据(例如,较少的点)非常有效 使用OGR的相交工具。我通过ogr2ogr甚至通过滚动自己的C ++工具都进行了尝试。两者都具有与QGIS相同的问题。对于简单的文件,它们也不会出现此问题,但是对于较复杂的文件,则不会通过。作为参考,我使用的是澳大利亚和新西兰的shapefile,大小不超过20mb,并且QGIS和OGR都无法对其进行“网格化”。 有人建议一次使用PostGIS,因为它具有交集功能-但PostGIS的ST_Intersect使用与OGR相同的GEOS后端。实际上,据我所知,它们都调用相同的函数,因此我认为PostGIS不会产生不同的结果。 我一直在寻找关于其他尝试方法的建议。我需要一个功能强大的应用程序或工具包,可以将高度详细的shapefile划分为图块。 编辑:添加一些更多的信息 针对Simbamangu: shapefile基本上是来自OpenStreetMap的海岸线数据。这是“ processed_p”文件的合并版本(因此不会拆分为图块),我通过给他们的开发人员列表发送了电子邮件。请注意,他们将瓦片分割成100km x 100km重叠的块并不一定是我想要的-我不希望重叠,我想自由选择网格大小,或者我只想使用默认处理的_p。 默认情况下,海岸线数据具有QGIS报告的几何误差。我使用一个小的工具将这些错误汇总在一起,使用发现的一些代码专门解决了这个问题(修复海岸线数据中的几何错误:https : //github.com/tudelft-gist/prepair)。使用此工具在文件上运行几乎可以修复QGIS发现的所有错误。我仅在清理文件后尝试进行相交。 我使用QGIS所做的正是:打开数据以确保它在QGIS中看起来不错。尝试通过使用具有指定间距的Vector Grid创建一层瓷砖,然后将这两层相交,将其分成多个瓷砖-不行。尝试使用较小的数据集-选择大洋洲(Aus,NZ)中的要素以尝试使用较小的数据集-此形状文件的大小小于20mb。再次尝试将其分割,不起作用。 我对OGR所做的事情:ogr2ogr直接使用带有spat_extent的'-spat'和'-clipsrc'选项。还写了一个可以在WKT上运行的小型C ++工具,因此我使用ogr2​​ogr将shapefile转换为WKT,然后将文本文件提供给我的应用程序。它遍历该文件并调用此处记录的Intersection()方法:http : //www.gdal.org/ogr/classOGRGeometry.html。我认为最终结果与直接使用ogr2​​ogr完全一样。 针对布伦特: 是的 一切都在WGS84纬度/经度中 我以为是相反的事实-对于给定的一组网格图块,与一个巨型多面体相交将花费更长的时间,而不是一堆可以在空间上更局部地定位于每个图块的零碎要素,但这是一个有趣的建议-我会尝试并报告。 在此过程中不会保留任何属性字段,我只对几何感兴趣。 我不确定,但是我想你是说我应该选择与给定网格图块重叠的多边形,然后执行相交。使用QGIS手动操作太麻烦了。我的工具已经通过边界框检查在一定程度上做到了这一点。速度有所提高,但是最终结果仍然很差,并且没有明显的不同。 这不是一个选择。现在,我正在尝试将数据划分为1度经度x 1度经度,并且我正在寻找一种适用于所有情况的通用/稳健方法。我尝试增加网格尺寸(即10x10)以查看是否可以获得更好的结果,并且看不到网格尺寸与输出质量之间的任何关联。 编辑#2: 我尝试了更多,总的来说,使用GEOS和QGIS(使用fTools,我不知道是否又使用GEOS)时,结果似乎都不可靠。我错误地指出网格的大小与结果无关—网格越大,结果越好(这是很好的认识,但仍然不是解决方案)。这是一个实际间隔开的网格的屏幕截图,该网格大部分可用,但在一个磁贴中部分失败: 几何图形很干净-QGIS使用“检查有效性”工具显示0错误。我不是要逐步解决这个问题。验证某些特征是否在视觉上不明显(且不会使用较小的图块)的情况下,无法通过如此大的数据集的交集不可行。

1
IP地理编码如何工作?
我试图了解使用IP地址的各个部分如何影响地址解析的准确性。例如,如果 15.201.xxx.xxx 用于代替 15.201.123.xxx KM的大概距离是多少?我正在使用IP2Location Lite数据库来检查谁访问了网站。该README规定如下: 1. IP2Location Lite Edition is free package with accuracy up to Class C (192.168.1.X) only. It is restricted for non-commercial use. 但是,我很难找到有关这实际上意味着什么的文档。这种准确性还会随时间变化吗?
11 geocoding 

2
如何在不编译的情况下获得GDAL 1.9中的FGDB支持?
我希望我可以使用QGIS的“主版本”(每晚构建)来获得fgdb的支持而无需进行协调(我不是开发人员,坦白地说,这浪费了很多生产时间,试图使事情没有运气就可以进行编译) 。 由于gdal 1.9似乎支持fgdb,因此我认为我可以下载开发人员版本。但是,即使具有gdal 1.9,最新版本的QGIS(191a229)似乎也不允许我添加gdb文件。 主构建中包含的gdal版本是否未通过fgdb支持进行编译?有谁知道是否有一种无需编译新版本的方法?

3
通过Web编辑PostGIS / GeoServer数据?
我已经安装了PostGIS,并想创建一个Web应用程序来进行一些简单的编辑: 使用捕捉点(点,线的终点,交点,圆心)手动(在底图上)绘制点,线和折线 删除点,线和折线 围绕一个点旋转一条线或一组线 用基点移动一条线或一组线 移动折线和点(手动移动到坐标给定的点) 编辑折线和折线的折点位置(手动以及由坐标给定的点) 在点,线和折线周围创建缓冲区 通过网络做到这一点的最佳方法是什么?有没有已经建立的JavaScript库?

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 …

6
使用GeoDjango获得2点之间的距离?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为地理信息系统堆栈交换的主题。 2年前关闭。 我有两个由gps坐标定义的位置,纬度/经度很像Google地图返回的位置: http://gmaps-samples.googlecode.com/svn/trunk/geocoder/singlegeocode.html 我需要计算它们之间的距离。我知道我可以使用google API,但是我将处理批量查询,所以我宁愿在自己的服务器上进行操作。 我已经花了几个小时阅读文档,安装了geodjango OK,但是似乎找不到这个示例。文学中的一切都比我需要的复杂得多。

1
射线与地球表面的交点
说我有一个射线矢量,它起源于太空中的某个地方。一个例子可能是来自太阳的光线。如何计算射线与地球表面之间的交点(如果存在)?我正在使用笛卡尔坐标(ECEF),并且希望将地球的椭球几何纳入计算中。
11 algorithm  wgs84 

6
我在哪里可以在GeoTIFF中下载良好的世界图像?
我可以来自MERIS(ESA)或来自MODIS(Nasa)。我已经到达以下站点: http://www.unearthedoutdoors.net/global_data/true_marble/download http://www.eosnap.com/public/mosri/2009/world/world-mosaic-final-100.jpg 但是从第一个开始,我无法下载,从第二个开始,它在tiff中不可用。 谢谢
11 imagery 

2
使用带有用户输入的ModelBuilder按属性提取?
我想使用ModelBuilder创建一个工具,让用户选择一个或多个将用于提取shapefile的值。 我有一个带有“ Parcel_Type”字段的宗地层。我希望用户能够选择要提取的包裹类型。因此,如果用户要提取类型为“ EL”的地块,则只需输入“ EL”作为变量。如果要输入“ EL”和“ CDD”,则需要将它们输入为多变量。那将是人类与模型的唯一交互。 那么如何在模型中使用这些变量?

5
如何在QGIS中更改字段长度
我有一个在QGIS 1.7.4中制作的shapefile。字段之一是长度为80的字符串。我想让该字段接受更长的字符串,但我不知道如何更改其长度。我该怎么做呢? 谢谢。
11 qgis  shapefile 

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.