地理信息系统

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

8
哪些基于栅格的GIS系统真正起作用?
栅格GIS(例如GRASS,ArcGIS / Spatial Analyst和Idrisi)可以执行一组丰富的数据处理和分析过程,这些过程通常称为“ 地图代数”。在当今的计算环境中,以许多不同的格式维护1亿个或更多像元的栅格并要求相对复杂的计算(例如视域,分水岭和地形识别以及图像处理功能)变得司空见惯。 似乎有许多开源,免费和廉价的解决方案。但是,哪些在实践中真正成立?也就是说,哪些可以有效处理大型网格,可以轻松地输入和输出数据,合理地没有错误以及可以提供完整的分析程序?在您花费大量时间学习这些系统之前,您没有发现哪些陷阱或隐藏的限制?(最后一个问题是用网络搜索不容易回答的,我希望受访者能提供宝贵的建议。) 我对既能与流行(但价格昂贵)的商业系统很好地集成在一起又能与之竞争的解决方案特别感兴趣(这意味着Windows兼容性很重要)。

4
如何获得线串上最接近给定点的点?
我已经使用PostGIS很长时间了,但是从未使用过LINESTRING几何...!:) 这是我想做的:我有一个线串表(代表给定城市的街道,SRID 3395),我想找到最接近给定点的线串(GPS位置,SRID 4326)。 我发现的解决方案是使用expand()方法选择我的点内的所有线串,并使用方法确定每个线串与我的点之间的距离ST_Distance()。 这是SQL: SELECT myLineId, myLineName, ST_Distance(ST_Transform(GeomFromText('POINT(LON LAT)',4326),3395),myLineGeom) AS myLineDistance FROM myLines WHERE myLineGeom && expand(ST_Transform(GeomFromText('POINT(LON LAT)',4326),3395), 100) ORDER BY myLineDistance; 我得到的结果看起来还可以,但是我感觉我的实现中有问题。 1)你们认为expand()可以获取所有有关的线串吗? 2)你们认为ST_Distance()正确的使用方法是吗?我想我做错了,因为我想得到的距离是点与线之间的最小距离,而不是点与线串中的点之一之间的距离。 插图:
28 postgis 

6
撰写论文时引用了ArcGIS Desktop?
撰写论文时,是否应使用标准样式来引用ArcGIS,特别是ArcMap? 特别是,您如何引用分析中使用的特定工具。我指的不是本文中专门使用的引用样式。 Esri 提到了如何引用它们产生的数据,但是我找不到有关引用该软件的任何建议。

1
从预计的DEM数据与未预计的DEM数据计算流向并描绘盆地
这是一个理论上的问题,源于与同事进行的一些讨论,该问题涉及用从NAD 83中的一千万个DEM导出的预计(例如Albers等面积)与未投影(NAD 83)数据来描绘盆地。 有人说这不是问题,因为如果您决定投影,则可以根据未投影数据计算出的值只需进行调整。 但我不确定情况是否如此,因为地理坐标系中的数据与投影数据之间存在固有差异。我尝试了一个从非投影DEM数据开始的例程示例,然后使用投影DEM数据测试了同一站点。使用10m DEM数据完成了这两个步骤(在ArcGIS 9.3.1中完成了所有工作)。 一次运行使用NAD 83中的DEM完成,第二次运行通过将相同的DEM投影到USA_Contiguous_Albers_Equal_Area_Conic_USGS_version中进行。 使用地理处理FlowDirection_sa工具导出流向 使用FlowDirection_sa工具得出流量累积 使用50米的距离捕捉倾点 使用Watershed_sa工具描绘分水岭 通过比较两者,我可以注意到“流向”网格显示之间的视觉差异。 注意:经过更多后续研究,我认为分条效果是由于未使用CUBIC重采样,而是错误地使用了ArcGIS Project Raster工具中的默认NEAREST。我不认为这可以为这场辩论提供任何解决方案... 使用非投影DEM的流向 使用投影DEM的流向 我了解视觉比较不是100%科学的,但可以是一个很好的起点。 因此,倾点与每次运行的捕捉方式之间存在差异。而且,鉴于捕捉倾点工具是如何根据相应的投影/未投影数据集决定捕捉的,在派生分水岭上存在一定的差异。绿色显示的分水岭是使用投影DEM和后续投影得出的高程导数数据得出的分水岭。紫色轮廓中显示的分水岭是使用未投影的DEM数据得出的分水岭。 分水岭 我在旧的ESRI论坛中遇到了另外两个GIS论坛线程(下面的链接),这些线程讨论了此问题,但对于流向工具相对于投影数据还是非投影数据的工作方式,我仍然不清楚(我理解水文流量和流量方向的概念)。如果在投影的DEM与未投影的DEM中每个像元仍具有相同的标高值(这是正确的吗?),为什么在NAD83中从投影数据派生的流向栅格与从DEM数据派生的流向栅格有差异? http://forums.esri.com/Thread.asp?c=93&f=995&t=292503 http://forums.esri.com/Thread.asp?c=93&f=995&t=290652 而且,如果在较高纬度上进行划定,例如在弗吉尼亚州的谢南多厄国家公园进行划界,而不是在德克萨斯州进行划界,从理论上讲,任何差异都不会成为问题吗? 我曾与一位制图专家交谈,他认为,当您离开赤道时所产生的东西向失真可能是一个问题(例如在某些地图上加拿大极度膨胀和扭曲),因为如果您超过如果您担心精度问题,他们认为投影数据是远离赤道的纬度10度。 一个主要的未知数是盆地的不确定性水平,该盆地使用我们试图处理的非投影数据来描绘。有区别,但是幅度是多少? 感谢任何能够为该讨论提供直接答案或对此有所帮助的人。 编辑 我们感兴趣/关注的主要问题是,由于使用未计划的DEM启动流程而导致划定的分水岭是否存在准确性问题。 因此,如果我理解答复,那么就代表倾泻点的流域而言,划定的盆地应该很好吗?但是,如果流向错误,似乎会在最终划定的分水岭上导致某些错误。 这是一个非常有趣且非常重要的主题-我尚未看到报告或文档说明可以使用联合国投影数据来描绘分水岭。我已经完成了由Spatial Analyst扩展(其中包含水文工具)的首席开发工程师带领的ESRI用户会议技术讲座,他们说您也应该使用等面积投影(例如Albers等面积)。 同样,似乎没有任何权威的“圣经”标准来解决此问题-似乎这是在计算高程导数之前投影数据的几乎公认的事实上的方法。 关于这如何影响流向计算以及随后的分水岭划分,我无法找到一个简明而直接的答案。 而且,如果最终使用未投影的DEM数据划定了分水岭,然后又投影了这些分水岭,那么是否还不准确(例如,在确定分水岭面积或其他任何特征(如土地覆盖率等)方面)? 此外,我假设投影从未投影的DEM派生的流向栅格不会校正错误,因为源数据是未投影的。 谢谢-感谢您可以提供的其他见解 编辑-20110331 @whuber: 感谢您的广泛讨论。我们已经对这个问题进行了更多的研究,并且实际上遇到了一些参考资料,这表明最好不要在获取流量目录,流量累积和描绘轮廓之前投影DEM。 提出以下问题时,来自一位匿名来源(但名气很好的人)的一封电子邮件回复:1.)项目DEM 2.)生成派生对象或1.)产生派生对象2.)项目DEM说: 简而言之,它取决于导数。对于将要可视化的连续导数,您应该导出然后进行投影-这样可以降低(或通过投影算法)增强或引入图块边界伪像(如果要先投影DEM则传递给导数)的风险。例外情况是,您还使用距离或面积作为导数计算的基础。当然,这是相对于距离/区域有多大以及您可以远离赤道的可接受距离。因此,想象一下,对于依赖于像元大小的诸如坡度或山体阴影之类的衍生物,会产生后果。这些导数在赤道处将最精确,并且在向北或向南超过60度时,精确度将大大降低。在这两种情况下,我都假定DEM覆盖的区域非常大(大于1.5个UTM区域),并且采用的是传统的基于图块的方法,其中图块是任意的或符合现有标准(例如USGS四边形边界)。因此可以说,这意味着很多想法早于镶嵌数据集,而我对此无能为力。我主要关心的是想知道DEM瓦片的匹配程度。如果它们匹配得很好(如NED),那么我希望事情能够很好地进行,派生自图块的派生类(作为应用于镶嵌数据集的函数),然后即时显示它们。如果它们不匹配,则进行垃圾回收,然后进行垃圾回收。回到您最初的问题,我认为这仅仅是分水岭的边界, 他们接着说: 我坚持使用非投影方法的原因是,我们使用的栅格本身就是DEM的派生类(我们通常没有,但通常认为是LiDAR点云)。对于覆盖非常大区域的栅格,例如分辨率相对较高的大洲,当栅格使用常规尺寸的像元时,投影到像Albers这样的东西会导致信息丢失或引入(如Esri的栅格那样)。这意味着像Flow Accumulation这样的工具将根据部分或内插信息产生结果。基本上,所有应用于栅格的投影算法都会在出现扩展或缩小大于像素宽度距离的情况下引起问题(像Albers这样的投影会通过在两个旧像素之间引入新像素而引入误差)。从这些中得出意味着累积误差的可能性很高。 这似乎暗示了相反的情况-投影会引入更多的噪音,除非您的纬度超过60度。 我们还遇到了一些已公开的消息来源,这些数据表明,针对GIS的分布式水文模型(Vieux,2004):http://www.springerlink,未投影是较小流域的可接受方法(第1.6节的最后2段) …

8
使用ArcSDE进行版本控制时,可以取消或拒绝发布的编辑吗?
我正在使用ArcGIS 9.3.1,并尝试使用已经注册为版本控制的SDE地理数据库(具有一个面要素类)。我是版本控制的新手,但仍在尝试弄清其中的一些基本功能。到目前为止,我还无法发现将某些修改发布到父版本后是否可以“取消”或“拒绝”某些修改。 例如,假设我们有三个版本:在注册为版本时创建的原始SDE.DEFAULT,默认名称为SDE.QA(用于质量保证)的子版本以及名为SDE的QA的子版本。 .Edit1(首先进行编辑的位置)。如果编辑了SDE.Edit1的某些功能(例如,为了简单起见,假设添加了一个多边形,然后删除了一个多边形),然后将SDE.Edit1与SDE.QA进行了协调,然后发布到SDE.QA,有什么办法以后可以撤消此更改?跟进这个问题,是否可以仅拒绝某些更改?例如,接受添加第一个多边形,但拒绝删除第二个多边形? 据我所知,一旦将编辑内容发布到父版本中,所有这些更改现在都是父版本的“永久”(由于缺少更好的用词)部分。我知道以下事实:所有这些更改都记录在两个表中,即“ ADD”和“ DELETE”表(通常称为“ delta”表),实际上并没有更改原始FC本身。我考虑过研究手动更改这些增量表,但是我发现有足够的人警告说这可能不是正确的解决方案。 也许是我对版本控制的理解需要一些工作,但是一旦发布更改,我似乎无法找到拒绝更改或撤消更改的方法。我觉得这很奇怪,因为这意味着无法撤消包含错误的帖子。我似乎也找不到找到这些版本沿袭的方法(即哪个版本是哪个父版本的子版本)。当我在讨论这个话题时,如果有人知道任何特别有用的ArcSDE参考资料(链接,文章,书籍等),可能有助于我对ArcSDE的理解(并可能回答其中的一些问题),将不胜感激。 ! 尽管到目前为止的答案是有帮助的(感谢您的链接),但我仍然找不到问题核心的答案。再次,也许这是我自己对情况的误解。这是我想知道的: 将帖子从子版本发布到父版本后,您可以将其撤消吗?在这种情况下,父级可以是SDE.DEFAULT版本,但不一定是。更好的是,我想知道发布后是否可以撤消发布的一部分(例如,对多边形进行一次编辑)?我也想知道是否可以在不需要检测到任何冲突的情况下完成此操作。 我在任何地方都找不到对这个问题的明确答案(即“是”或“否”)的事实,这使我觉得我缺少有关ArcSDE版本控制的重要信息。我也希望避免手动操作A和D表。

7
从高分辨率LiDAR DEM创建精确的排水网络(和集水区)的方法?
这不是我第一次偶然发现这个问题。看来我无法从全分辨率(1m个像元)的LiDAR数据中生成正确的排水网络模型和集水区。 当我对LiDAR数据集进行泛化,将其转换为整数DEM并填充接收器时,一切都很好,并且我可以轻松创建看起来非常泛化的模型。但是,我想为大型地图生成详细的站点模型,而这正是我遇到的问题。 我应该指出,大多数问题发生在平坦地区。 我希望排水管网能够准确地跟踪地形,但是当我使用整数DEM输入创建排水管网时,生成的流非常普通,并且经常在不应该连接的区域“断开连接”。溪流甚至没有紧紧跟随地形中的自然山脊。还有很多“孤立”或“无处可去”的细分。当我使用浮点DEM输入时,生成的排水网络是详细而准确的,但与孤立流的连接非常疏离,成簇且“乱丢”。 我怀疑我的问题出在数据准备中。整数vs浮点栅格DEM输入,正确填充汇等,还是我必须以某种方式处理表面数​​据才能首先创建“水文学上正确的”输入DEM? 有人可以描述使用高分辨率LiDAR创建连续排水网络和集水区的正确方法吗? 就目前而言,我从整数DEM输入创建模型方面取得了更大的成功。但是,这对于详细的大规模分析而言并不理想: 第一个附加图像是由整数DEM输入生成的模型。圈出了几个明显的问题区域。请注意,实际上似乎是主要排水通道中有溪流。我添加了一个非常通用的流版本。 编辑:正如我已经提到的,我已经从整数DEM输入创建模型取得了更大的成功。以下屏幕截图说明了为什么会这样。尽管整数DEM输入存在许多问题(如上所示),但它仍会产生排水网络,尽管不符合地形特征,但排水网络的连通性较小。正如您在下面的图像中直接看到的那样,使用浮点DEM输入会生成一个非常断开的群集网络,上面充满了小的孤立段。 从浮点DEM生成的流量累积栅格 由整数DEM生成的流量累积栅格 据我推断,这两种方法均会产生截然不同的结果,这两种方法都无法用于详细的模型。 编辑:我为使这篇文章越来越长而道歉(也许我没有用英语清楚地表达自己)为了进一步说明使用浮点DEM作为输入的问题,我将附加结果流链接输出以及结果分水岭。我期望的是一个连续的河流网络,整个盆地覆盖的整个区域相互流入。 从浮点输入DEM产生的Stream Link: 从浮点输入DEM产生的流域盆地: 这是一个示例(附近区域,相同的数据),其中流域的整个流向由于使用整数DEM输入而发生了变化:红色箭头是模型的流向,蓝色箭头指示实际流向。(蓝线-实际流,红色网络是LiDAR派生的流网络Strahler顺序) 数据链接:https : //www.yousendit.com/download/MEtSOGNVNXZvQnRFQlE9PQ (将于2011年5月13日到期)

1
如何使用gdal_proximity计算到要素的距离?
我正在使用gdal_proximity查找距美国(下48个州)最近的主要河流的距离。我已经将NHD +网络流线投影到Conus Albers(epsg:5070),选择了河流顺序> 5的河流,并进行了栅格化处理,燃烧的河流为255,没有河流为0。这很好,但是现在我需要查找距离到最近的河流(50公里以内)。输入文件在大陆范围内的分辨率为30m,因此非常大,但转换应使用简单的gdal_proximity命令: gdal_proximity.bat -values 255 -distunits GEO -maxdist 50000 -nodata -999 infile.tif outfile.tif -co COMPRESS=DEFLATE -co BIGTIFF=YES -co TILED=YES 这似乎几乎可以正常工作,但是在输出中产生了一个奇怪的几何图案(参见图片)。输出中存在的数据已正确处理。谁能说出为什么缺少这么多输出? 编辑:要测试这是否由任何可选参数引起,我在此配置中再次运行了gdal_proximity: gdal_proximity.bat H:\data\tmp\NHDplus_network_flowline_SO6plus.tif H:/data/tmp/NHDplus_network_flowline_SO6plus_proximity.tif -values 255 -maxdist 50000 -of GTiff 产生基本上相同的结果: 我唯一的想法是,它可能与栅格的大小有关(未压缩的〜100 gb。据我所知,BigTiff的大小没有限制,但gdal的大小可能存在限制有效分析?


4
制作可调用ArcPy的单独Python安装?
我看到很多问答,询问您如何创建可以使用arcpy而又不“破坏”原始ArcGIS python安装的单独Python安装(例如Anaconda或Python XY发行版)。 我遇到了同样的问题,我想我已经找到了“通用”解决方案。到目前为止,我们已经在大约8台工作的计算机上完成了此操作,并且一切正常。 如何安装可以使用ArcGIS的单独的Python发行版?

6
如何更新ogr2ogr以包括PostgreSQL驱动程序?
我正在尝试使用ogr2​​ogr将shapefile上传到远程PostGres安装。当我运行此命令时: celenius:~ celenius$ ogr2ogr -f PostgreSQL PG:"host=255.34.00.00 user=postgres dbname=mydb password=***" Dropbox/data/roads.shp; 我收到以下错误消息: Unable to find driver `PostgreSQL'. The following drivers are available: -> `ESRI Shapefile' -> `MapInfo File' -> `UK .NTF' ... -> `SVG' -> `CouchDB' -> `Idrisi' -> `ARCGEN' -> `SEGUKOOA' -> `SEGY' (我省略了一些无关紧要的驱动程序)。有没有一种方法可以更新ogr2ogr以包括PostgreSQL?我正在使用OS 10.7.4的Mac



2
多部分功能的好处?
几乎在每个GIS中都实现了多部分的点,线和面,但是它们有什么好处(如果有的话)呢? 在关系数据库中,不同要素共享的属性可以存储一次,而ID用于将它们链接到单独的几何记录。那么,多部分功能是否会保留平面文件数据存储?



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.