地理信息系统

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

2
在基于OSM传输网络的R中执行路由分析?
我正在根据人口普查流量数据,工作密度分布和交通网络分析通勤者上班的可能路径。 目前,我正在使用用于QGIS的pgRouting和pgRouting附加组件(在此进行介绍)进行分析: 但是,我希望我采取的所有步骤都可以完全复制(请参阅此处的出色文章),然后我希望从命令行进行分析并保存脚本文件以供将来参考。 R-geo软件包是免费,轻便且稳定的,因此可以很好地满足此要求:下载一个很小的脚本文件,您应该可以重新执行我所做的所有事情(请参见此处,了解Rpubs上与此无关的示例) )。 我为此确定的R包是: gdistance于2012年12月发布,看起来很有希望,但没有迹象表明与osm传输网络兼容 e1071似乎很抽象,可能对我想做的事有些过高 spatstat软件包中的pairdist.lpp函数看起来很有希望,但几乎没有文档 在深入探讨这些问题之前,认为值得询问那些可能面临类似困境的人。 是否可以在R中进行路由分析,还是最好正确学习PostGIS并全部在pgRouting中完成?


2
使用proj4用R ggmap和ggplot2包指定Robinson投影?
我想在罗宾逊投影中投影这张地图: library(ggmap) world <- map_data("world") ggplot() + geom_path(data = world, aes(long, lat, group = group)) 并且我想将投影更改为“罗宾逊”(在回答我以前的问题的建议之后:Wikipedia使用的全球气候区域地图使用哪种投影? 我很难找到此投影的默认实现,使用该proj4库我做了以下工作: library(proj4) robinson <- project(cbind(world$long, world$lat), proj = "+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs") 我尝试了多种方法,包括: # using ggmap::get.map() get_map("world", projection = mapprojection(robinson)) # using ggplot2::coord_map coord_map(projection = robinson) # and sp::coordinates: library(sp) …

2
使用QGIS从表中获取表格统计信息?
是否有QGIS工具允许用户从表中获取表格统计信息?我有点希望能够打开表,选择我感兴趣的字段,右键单击字段标题并获得与此类似的内容(来自ArcGIS的截图): 更具体地说,我正在寻找QGIS替代ArcGIS 频率和摘要统计工具的工具,该工具提供了许多其他统计信息,您可以检索有关表格数据的信息。 问完之后,我发现了这个QGIS教程(请参阅第4.2节),该教程描述了如何找到此功能...矢量>分析工具>基本统计信息。我还在其旁边找到了“向量”>“分析工具”>“列出唯一值”。这为我提供了唯一值列表,但是我还想看到每个唯一项的频率(计数)的附加列。此类似工具是否可以“开箱即用”使用?
13 qgis  statistics 

2
如何建立穿过180度线的最小凸包?
我一直在为居住在印度太平洋的物种(经度从20度到-65度)建造凸包。我遇到的问题是,对于可以在180度经度线的两侧找到的物种,重建后的船体会在整个图层上扩展,而不是在包含该图层两端的较小多边形中包含这些点。造成这种现象的原因是,这条线代表了图层的边缘,并且QGIS没有包装矢量地图(请参见下图……我的“声誉”现在“足够好,可以包含它,谢谢)”。 经过深思熟虑,这些是我遇到的一些可能的方法。但是,我不太确定它们的优点或实现: 将中央子午线从0(即格林威治)更改为150度。如何才能做到这一点?这会仅仅是改变地图显示(本身就是有用的),还是有助于正确凸壳的构造? 将坐标系从+/- 180度格式更改为0到360度格式。显然,可以使用PostGIS中的“ ST_Shift_Longitude”功能来实现这些目标,该功能会将负经度增加360度。有没有更简单的方法可以做到这一点?此外,此函数还会生成一个180度的中心图,虽然这不是世界末日,但150度的中心图会更好(〜印度太平洋的中心)。 感谢您的时间和帮助,对于冗长的帖子,我们深表歉意。
13 qgis  convex-hull 

1
如何使用背景框创建文本标签?
我正在尝试为QGIS点矢量层中的点要素创建一些自定义标签,并且我想编写一个python插件来做到这一点。我们需要在标签后面显示带有彩色矩形的标签(否则!)。标签是长字符串,并且使用标签引擎表达式和条件创建。 我认为最简单的方法是让用户以他们想要的方式为活动层设置标签,然后让我的插件从该层的要素中获取标签文本,然后使用文本字符串创建框。我的问题是我找不到在QGIS API中访问这些文本字符串的方法。标签引擎如何将标签字符串生成的标签字符串存储在QGIS中,如何获取它们?
13 qgis  pyqgis  labeling 

2
ArcGIS长度和面积计算方案[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 尝试掌握在ArcGIS中不同方案中如何计算长度和面积。我不知道为什么我不能在要素类字段上找到答案,但是我找不到精确的答案,除非我不了解某些内容,而且我知道有一些历史。您能帮我填写问号吗?或告诉我为什么我会做错一切; ) GCS =地理坐标系PCS =投影坐标系 所有链接均指向10.1帮助文档- 要素类shape_length和shape_area字段 一个。GCS-吗? b。PCS-使用简单平面 c。除shapefile之外,它是否总是自动更新?是 ArcMap中Measurment工具 一个。GCS-默认测地线,替代方法是Loxodrome和Great Elliptic,但不是平面的。面积计算不可用! b。PCS-默认的平面,可选的测地线,后院和大椭圆形 http://resources.arcgis.com/en/help/main/10.1/index.html#//00s500000022000000 属性表计算器 一个。GCS-不可用 b。PCS-平面 http://resources.arcgis.com/en/help/main/10.1/index.html#//005s00000027000000 计算字段工具(数据管理工具箱) 一个。GCS-测地线性,面积可用,但有问题 b。PCS-平面 http://resources.arcgis.com/en/help/main/10.1/index.html#//00170000004m000000 缓冲工具(和其他即将 提供的工具)GCS-测地线 b。PCS-平面或指定GCS输出 http://resources.arcgis.com/en/help/main/10.1/index.html#//000800000019000000 Javascript API客户端 a。GCS-测地线面积和长度函数 b。PCS-可以从Web墨卡托转换为地理(或使用几何服务) http://help.arcgis.com/en/webapi/javascript/arcgis/help/jsapi/namespace_geometry.htm Flex API客户端 a。GCS-测地线面积和长度函数,“长度(或面积)将使用自定义圆柱等面积投影来计算”。javascript api中未提及! b。PCS-可以从网络墨卡托转换为地理 http://resources.arcgis.com/en/help/flex-api/apiref/com/esri/ags/utils/GeometryUtil.html ArcGIS Server的REST API -几何服务 一个。GCS-测地线 b。PCS-平面 http://help.arcgis.com/zh-CN/webapi/javascript/arcgis/help/jsapi/geometryservice.htm 另一个问题,测地线究竟是什么?我以为这意味着要在球体(haversine?)上使用3D三角函数公式。在计算面积时是否太慢,这就是为什么要使用相等的面积投影吗? 确定长度和面积时的另一个问题是,等面积投影比使用相同基准球体的测地线计算更准确吗?简要为什么?

2
OpenLayers 2.12和HTTP基本身份验证问题
我正在尝试使用OpenLayers 2.12从启用了HTTP基本身份验证的服务器上显示WMS图层。 我试图通过将用户名和密码放在我的JavaScript代码的URL参数中来处理身份验证。图层创建示例: myLayer = new OpenLayers.Layer.WMS('background', 'https://username:password@ws.nls.fi/rasteriaineistot/image?', { layers: 'background', bbox: '-380188,6249943,1347312,8226943' }, { displayInLayerSwitcher: true, isBaseLayer: false, projection: 'EPSG:3067', visibility: true }); 当然,这是不安全的,因为凭据存储在JavaScript代码中,并且不能在所有浏览器中使用。Internet Explorer 8给出指向OpenLayers.js的安全错误,并且根本不显示该地图。Firefox 13弹出了一些我可以取消的身份验证对话框(此后,地图会正确显示)。在Chrome 23中,身份验证似乎完美无缺。 您是否可以通过将其编码为URL并将其提供给OpenLayers来确认无法以跨浏览器的方式处理HTTP基本身份验证? 您能否建议其他方法来处理HTTP基本身份验证,以使其对用户透明(不显示身份验证弹出窗口)?也许使用某种代理服务器来解决此问题。

1
在空间数据库中存储人类元数据的标准
是否存在一种现有的,标准的,通用的方法(希望还有支持该方法的现有工具),用于将地理空间元数据存储在非ESRI空间数据库中,并与数据本身一起存储(从而能够在传输时随行)。 我希望确定一种仅依赖于表和关系的方法,因此可以在诸如PostGIS,Spatialite,Oracle,SQL Server等数据库中使用。在这里,元数据表示有关数据的叙述性信息(即US FGDC或ISO 19139地理空间元数据类型信息)-不包括BBOX和内部内容。 ESRI用户现在拥有几种XML格式,无论它们是文件(Shapefiles)还是地理数据库,它们都可以通用地描述和伴随数据。但是,当不使用ESRI软件时,存在哪些现有选项?是的,当然,我可以设计自己的表,数据结构等。但是,为什么要重新发明一个必须存在的轮子。 更新: 我确实需要避免像Geonetwork这样的复杂架构组件(或任何必须包含服务器的组件)。同样,元数据将与数据一起存在,而不是作为单独的数据库。要求在下面,我应该在一开始就说明。 系统要求:1.架构只需要QGIS和一个Spatialite数据库就可以了-部分原因是该组织不够成熟,无法在服务器上运行任何东西,也没有钱购买任何东西或建造/部署任何东西。 功能要求:1.数据必须易于分发给许多人,文档也不能与数据轻易分离,这意味着它们应该活在一起并且易于分发,这样我就始终知道数据是什么以及为什么创建它们,等等-如果我有数据,我有文档。2.像数据本身一样,元数据文档应易于使用直观的桌面工具和非技术人员进行编辑和维护。 用例:1. Bobby the Student Volunteer(只是学习GIS)作为研究的一部分创建了一些监视站点的数据。2. Bobby记录了他使用的输入,他的处理步骤的解释以及其他有助于他人了解数据沿袭的信息。3. Bobby找到一份真正的工作并离开,将其数据备份到CD-ROM上。4.两年后,有人找到了数据并认为它非常有用,因为他们可以阅读数据中的文档。 如果您来自复杂的组织,您会说:“伙计,这真是一团糟。只要按正确的方式(不管是哪种方式)管理数据”。但是相关场景实际上在我的世界中很普遍。

4
如何在路线上添加偏移量?
编辑: 我想说明我的问题。假设您位于“ A点”,并且想转到“ B点”。由于不是源/目标节点,因此该点将不在“ at_2po_4pgr”表中。然后,我将搜索点A和B(绿色点)的最近节点。此后,我可能会使用绿点ID执行shortest_path调用,并且会获得“橙色”路径。但是在第一种情况下,要获得实际路径成本(距离),我必须减去“ offsetA”,在第二种情况下,必须添加de“ offset B”。要计算红点和绿点之间的距离,我运行以下查询: SELECT * FROM st_distance( ST_GeomFromText('POINT(-3.6963314 42.3498066)',4326), ST_GeomFromText('POINT(-3.6954276 42.3479634)',4326))。 我如何知道何时添加或减去偏移量? 对不起我的英语不好!

2
GeoServer:发布2500 TIFF或71个ECW文件的最佳方法?
我有需要作为矢量背景图的区域的正照片。我将其作为原始TIFF格式的2500个文件(每个71.5 MB)以及相应的TFW字文件-180GB的数据获取。坐标系是局部的,并且与我的向量匹配(没有EPSG代码,但我将其命名为“ 32805”并给出了正确的定义)。 对于在MapInfo中用于桌面的情况,我将它们转换为ECW(使用MapInfo附带的某些工具),并且扩展到更大的大小,只有71个文件,因为打开2500个tiff文件是过分的。我刚刚将49个TIFF(7x7)合并到一个ECW中-35000x35000pixels –最大约为200MB)。它在MapInfo中运行良好且非常快。 现在我很困惑-如何在GeoServer中提供服务? 我已经发布了一个TIFF和一个ECW进行比较。ECW在浏览器预览中要快得多(我知道ECW服务器许可问题,但这不应该是问题)。我找到了一个演示文稿“类固醇上的GeoServer”,并阅读了有关ImageMosaic,ImagePyramid,平铺,添加概述等内容,虽然内容丰富,但仍然不知道该怎么做。 我的问题是:我应该怎么做?马赛克或金字塔,如果是肯定的答案之一,我需要您的建议或提示。由于磁盘空间的原因,我真的很想成为ECW,因此无需在服务器上保留180GB的tiff。 高峰时段将通过LAN提供数据,最多可连接20个用户。SQLServer的数据量不是很大。抱歉,如果我错过其他信息,但是如果需要,我会发送。 Geoserver 2.1.4,Windows 7 32位,2GB系统内存,(1.7.0_09(Java HotSpot(TM)服务器VM),本机JAI +本机JAI ImageIO = true Original TIFF gdalinfo D:\75720-47970.tif Driver: GTiff/GeoTIFF Files: D:\75720-47970.tif D:\75720-47970.tfw Size is 5000, 5000 Coordinate System is `' Origin = (7572000.000000000000000,4797500.000000000000000) Pixel Size = (0.100000000000000,-0.100000000000000) Metadata: TIFFTAG_SOFTWARE=Adobe Photoshop 7.0 TIFFTAG_DATETIME=2006:10:09 13:02:57 TIFFTAG_XRESOLUTION=72 TIFFTAG_YRESOLUTION=72 …

4
自交点为多边形,如何解决?
我有一个有关修复自相交多边形shapefile的问题。我有一个shapefile,其中包含具有自相交特征的多边形(ZM)。如果使用“修复几何”工具,它将找到多个自交点并进行修复。欢呼! 但是,当我导出此文件(或对其进行选择)时,此导出再次包含自交点。在我为解决该问题而进行的所有尝试中都会发生这种情况,其中包括: 使用工具“修复几何”,失败; 根据多边形的所有属性溶解它们,失败; 处置ZM属性,然后执行以上所有操作,均失败; 即使使用ArcCatalog将这个shapefile导入到地理数据库中,它也可以正确导入,但是当我从数据库进行导出时,自交点又在那里了。 因此,有关如何解决此问题的任何建议将不胜感激。如果有人能解释为什么存在这种行为,那就太好了。 我正在使用ArcGIS 9.3.1 build 4000(SP2)。

3
给定一组坐标,如何计算最小界限?
我有一组经度/纬度的坐标。始终至少有3个有序坐标构成一个多边形(如果将它们投影成平面)。如何将这些坐标的最小范围计算为一组有效的经度和纬度范围?(“有效”是指明确代表反子午线的范围)。很难解释我在寻找什么,所以我有一张照片。 图片中的情况很琐碎;您只是找到所有点的绝对最小值和最大值。不过,这并不适用于所有情况。有通用的解决方案吗? 编辑:要弄清楚“有效”的含义,请说我在数据集中有三个经度值:-76,-135和164。这些值跨越了antimeridian,我希望将得到的范围分开:-76至-180和164至180。 还有一些澄清。这些点形成多边形,因此在某些情况下,所需范围可能是-180至+180(即完整的360度): 左图显示了发生在地球“一半”上的四个坐标的经度。想象一下,好像您正在俯视北极(黑点)一样。粉红色显示了包围多边形的最小纵向范围(多边形在四个点之间以紫色显示)。左侧的案例将具有两个纵向范围:[-180至-120]和[135至180](仅在视觉上对其进行估计) 右图显示了另一种情况,这些点一直围绕地球。此范围为[-180至180]。

3
共享ArcGIS Python代码的文件组织
共享ArcGIS python代码和地理处理工具的最佳组织结构是什么?甚至共享代码和共享工具是否是单独的问题? Esri具有针对Arcgis 9.3和10.0发布的“ 工具分发方法”结构: 但是在其他地方,人们却在说类似Also do avoid distributing your code the way its done in Arc Scripts or Code Galleries本地python Distutils的说法。Esri似乎没有对应于10.1(ref)的发行工具文章,这为反论点增加了一些分量。 GIS.se怎么说? 更新:虽然可能为时已晚,但是这个问题的重点是在用于共享工具(在线ArcGIS,Google驱动器,Dropbox,github,bitbucket等)出现之前,有关文件和文件夹结构的最佳做法。玩。 Update2:而且没有人会说显然是孤立的distutils方法吗?

1
使用python向TOC添加层
我一直在努力在TOC中添加图层。我设法添加了单层,但需要遍历文件夹并添加所有层。我根本无法添加Shapefile。仅图层文件。以下是我所在位置的代码: for layer in shp_List: mxd = arcpy.mapping.MapDocument("CURRENT") dataFrame = arcpy.mapping.ListDataFrames(mxd, "*")[0] outlayer = lyr layerfile = os.path.join(base_Folder, lyr + ".lyr") arcpy.MakeFeatureLayer_management(layer, outlayer) arcpy.SaveToLayerFile_management(outlayer, layerfile, "ABSOLUTE") addlayer = arcpy.mapping.Layer(layerfile) arcpy.mapping.AddLayer(dataFrame, addlayer, "BOTTOM") #addLayer = arcpy.mapping.Layer(layer) #arcpy.mapping.AddLayer(dataFrame, addLayer, "BOTTOM") #arcpy.RefreshTOC() #arcpy.RefreshActiveView() del addlayer, mxd 上面的代码会将每一层添加到目录中,然后将其删除,然后添加下一层。整个脚本完成后,目录中什么都没有了。我尝试将此脚本添加到模型中并创建一个派生的输出参数,然后将其作为模型参数添加,并选中“添加到显示”。我还检查了地理处理选项,以确保选中了要添加到显示的框。我正在运行Arc 10(无Service Pack)。有人可以帮忙吗?

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.