地理信息系统

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

1
如何在QGIS中使用Python脚本将画布数据填充到作曲家地图并将构图导出为png
我想在QGIS中创建一个Python脚本,该脚本将获取一些数据(在我的示例中为shp + tif),使用模板模板Composer(来自文件),并将创建的合成导出到png图像。 几乎没有编程经验(除了基本的Python知识),我在Google上搜索了一些代码片段,并试图使它们协同工作。我从以前回答的一个问题中提取了Map Composer代码: 使用Python将Print / Map QGIS composer视图保存为PNG / PDF(不更改可见布局中的任何内容)吗? 我设法加载了数据和Map Composer模板(已定义了一个地图和图例项目),但我的导出png图像具有一个空的地图框架(该框架内没有矢量/栅格数据)。图例项目看起来很好。 使此代码有效吗? from qgis.core import * import qgis.utils from PyQt4 import QtCore, QtGui from qgis import core, gui # ADD VECTOR LAYER data_folder = "D:/QGIS/dane/" granica = "granica_SZ VI_UTM34.shp" granica_name = granica[0:-4] granica = data_folder + granica …

2
创建受海岸线限制的区域缓冲区
我正在尝试使用ArcGIS 10.2基于预定义区域(例如400平方公里)创建点的缓冲区。除此之外,某些点的缓冲区靠近海岸线,因此需要将缓冲区修剪在海岸线上,并且仍然具有与内陆缓冲区相同的面积(400平方公里)。 有谁知道可以使用“模型开发器”或“ Arcpy”完成此操作吗? 我在Arcpy和R方面的技能有限,但是很乐意进行一些脚本编写以获得解决方案。 请参见下面的图片,其中显示了我要实现的目标的图形表示
10 arcpy  arcgis-10.2  r  buffer 


1
QGIS中的SAGA逆距离加权-如何设置最小点数?
我正在分析QGIS版本2.8.2中的postGIS点数据集,总共约有20万个特征。为了计算加权平均值,我使用了逆距离加权插值技术。但是,我担心输出中看到的“高”值是少数异常值的结果,而不是任何有意义的空间模式的基础。 SAGA IDW插件(或其他IDW工具)中是否可以设置栅格表面以计算加权平均值所需的最小点数,就像它考虑最大点数一样?

1
用R消除多边形之间的条缝
有没有一种方法可以消除使用多边形之间的小“条” R?理想的解决方案将创建一个新SpatialPolygonsDataFrame的多边形之间共享边界重合的地方。我对使用R而不是ArcMap或QGIS 的解决方案特别感兴趣。 我也想听听有关为什么首先存在这些差距的解释。 这是我正在处理的空间数据的可重现示例: library(rgdal) library(sp) library(tigris) library(magrittr) library(leaflet) library(gplots) # This project will use WGS 84 projected coordinate system crs_proj <- CRS("+init=epsg:4326") # These are the FIPS codes of the specific block groups in my study area sel <- c("530330079005", "530330079001", "530330079004", "530330085002", "530330085003", "530330086003", "530330087003", "530330085001", "530330090001", …
10 polygon  leaflet  r  tiger  slivers 

1
使用小部件在ArcGIS WebAppBuilder中交互选择要素
我希望在我的WebAppBuilder地图中构建一个看似简单的工具。 一些基本知识: 内容是在ArcGIS 10.3.1中创建的 内容作为缓存服务发布到ArcGIS 10.3.1 Server 地图是在ArcGIS Online上开发的 地图被推送到WebAppBuilder 当前使用开箱即用的小部件(具有WebAppBuilder的开发人员版本,因此我可以根据需要使用代码来自定义创建) 任务:在WebAppBuilder中以交互方式复制“ 选择功能”的功能。 迄今为止,我已经尝试使用Query Widget的变体,因为它允许用户使用“使用空间过滤器限制特征”,然后使用“仅接触用户定义区域的特征”来交互式地选择特征(请参见下图) 但是,这尚未证明是成功的,因为它是我所寻求的一种变体。我只是希望用户能够选择几何形状(多边形,直线,点),并将其突出显示在地图上。 作为奖励-我希望用户能够控制突出显示选择的颜色-与选择选项类似。(见下图)

1
ArcGIS Pro任务是否支持可在地图框架上运行的Python Toolbox工具?
ArcGIS Pro任务是否支持可在地图框架上运行的Python Toolbox工具? 我问的原因是我在尝试执行以下操作时被卡住: 启动ArcGIS Pro 1.1.1 创建一个新项目-我叫mine TestProject并放在C:\ Temp中 使用“项目”窗格将“文件夹连接”添加到我拥有“自然地球”(Natural Earth)世界国家/地区的shapefile的位置 将ne_10m_admin_0_countries.shp拖放到地图中以创建名为ne_10m_admin_0_countries的图层 插入新的布局-我使用了A3横向 在布局上插入新的地图框 在“项目”窗格中,在TestProject文件夹中创建一个New Python Toolbox-我称为mine TestPYT 在“项目”窗格中右键单击“ TestPYT”以对其进行编辑 将代码替换为下面的代码,为Python Toolbox提供两个名为Chile和Switzerland的工具 保存脚本并刷新Python Toolbox以查看两个新工具 运行智利工具以查看布局图上的地图框缩放至智利 运行Switzerland工具,以查看版图上的地图框放大到Switzerland 插入新任务项 在任务项1中插入一个新任务,并将其命名为Chile 在智利任务中,插入一个新步骤,并将其命名为Zoom to Chile 对于“步骤行为”,将其设置为“自动”和“隐藏” 在“操作”选项卡上,我尝试选择“智利”工具将“命令/地理处理”设置为“地理处理工具” 当我选择“确定”时似乎会粘住 当我单击“完成”时,似乎“丢失”了该工具 具体来说,我要创建的工作流包含两个任务,可以单击以放大到智利或缩放到瑞士,但在上面的第19步中遇到了麻烦。 我总体上想做的是找到一个与ArcPy(对于ArcGIS 10.x体系结构)中的Python AddIn工具栏等效的ArcPy(对于ArcGIS Pro),并使用两个按钮(智利和瑞士)来放大这些国家/地区。 我已经执行了几次此程序,有一次我能够使智利和瑞士的工具作为任务使用,但即使那样,它们似乎也没有与地图框架交互(没有错误,只是没有变化)到它们在运行时在“地图框架”中显示的位置),即使从Python工具箱运行时这些工具仍然可以正常工作。 这是要复制/粘贴到Python工具箱(TestPYT)中的代码。 import arcpy class Toolbox(object): def __init__(self): """Define …

1
计算QGIS中两个单独图层的要素之间的空间相关性
我试图确定一个地区大量现役军人的存在是否与高/低暴力犯罪水平在空间上相关。也就是说,与不靠近军事基地的地区相比,围绕大型军事基地的地区平均而言,暴力程度是否更高? 我正在使用以下两个数据集: (1)美国大陆军事基地的点数据集及其相应的部队等级: (2)一组有关城镇的暴力犯罪率的全国性数据: 我觉得我正在寻找某种基于重力的模型,其中“质量”函数给出每个基地的部队水平。因此,大部队的存在将对更大的区域产生影响,并且在质心附近(即GIS层中的点位置)产生更大的影响。 我认为从概念上讲,它看起来像这样: 在此图中,X,Y,Z代表军事基地。a,b,c,d分别代表城市(每个城市的属性表中都有一个暴力发生率字段)。 基部周围的梯度表示影响范围,该范围随距基体质心的距离呈指数减小。更大的部队存在等于更大的影响半径(具有一定的最大阈值距离),并且相对于较小的基地附近的区域,也意味着在中心附近的影响更大。 每个城市将基于其周围所有影响力半径来自其周围所有基地的所有“力”向量的大小之和而获得得分。因此,例如,在我的图表中,城市a的得分为0,因为它位于在任何基地的半径之外。城市b仅受基数X影响。城市C仅会受到基准Z的影响,并且其得分将低于基准b,因为X的基准比Z大得多。最后,城市d位于两个基准X和Y的半径内,它将基于两个基地的影响力总和获得得分。然后,我将查看城市的较高分数与较高的暴力发生率之间是否存在相关性。 我一直在研究各种基于重力的模型(例如Huff模型等),但一直无法找到QGIS / Python所能提供的信息,因此我不确定如何实现我上面描述的内容……有人建议吗?为了这?你们中的任何人以前曾在其他领域进行过此类分析吗? 因此,TLDR为: 对于此类问题,我可以使用哪些统计技术? 是否有QGIS内置的工具(或作为插件提供)可以做到这一点? 如果QGIS中没有类似的东西,是否有任何Python库可以执行这种分析?


1
解释具有高块金效应的半变异函数?
我使用包gstat,variogram()function 在R中制作了半变异函数。我想看看我的模型残差中是否存在空间自相关(使用glmm,在相距几公里至900公里的站点之间,物种的丰富度是栖息地的函数)。 我的单位是千米,所以我的解释是,距离只有100多公里,直到空间自相关不再是“问题”。我想知道是否有人可以解释为什么金块看起来这么高?这是否意味着即使在相似的位置,仍然存在相对较高的差异?或者,这个波浪形的变异函数是否意味着我应该调整滞后次数和滞后距离,直到获得更典型的形状? 为了进一步研究,我还使用了variog()geoR包中的函数,并使用breaks=seq(0,100,10)来尝试查看更近的距离(使用相同的点和相同的模型残差)。这表明最接近的点有更多不同,这也没有意义。也许这表明不存在空间自相关,并且我的模型已经对此进行了说明。 我找到了这个极好的资料来源,“没有眼泪的地静止器”,并且在第51页上有一些关于拟合方差图的好的建议。根据这个建议,我的第一个似乎具有正确的范围。因此,这回到了第一个问题-我该如何解释?

1
是否将带有符号的标签添加到ArcMap中的图例?
我正在使用ArcGIS Desktop v10.2.2创建地图,将博物馆显示为点。博物馆层没有符号,标签由一个圆形填充,该圆形填充有内部具有ID的颜色,该颜色取自该[ID]字段。 我想将整个博物馆列表添加到布局图图例中,并列出我的符号及其ID和描述(其名称)的列表,这些符号取自该[LABEL]字段,而无需手动创建。 我知道一种可能的手动解决方案是将图层符号系统设置为“唯一值”,然后添加所有值(超过100个!),并为每个点设置一次相同的标签符号系统。但我希望有更好的解决方案! 看下面我的地图。 该图层为“ Musei”(博物馆),如您在左侧的图例上所见,该图层没有符号。在右侧,您可以看到描述的图例符号系统,该图例是一个深灰色的圆圈,内部带有红色文本,该[ID]字段取自该字段。我想在我的布局中添加一列,其中包含所有带有ID的圆和相应的标签。 -更新- 这是我按照@FelixIP提出的解决方案使用的字段计算器设置。 但是,这些点未按我期望的那样垂直对齐。相反,他们到处乱走了一点。我还尝试使用不同的步长值:10、100、1000、10000。

1
用R?中的另外两个条件来识别重叠的时间间隔。
对于重复/重叠的条目,我必须检查较长时间的鸟类观察。 来自不同地点(A,B,C)的观察者进行了观察,并将其标记在纸质地图上。这些线与其他物种有关的数据,观察点和观察到的时间间隔加入其中。 通常,观察者在观察的同时通过电话彼此交流,但有时他们会忘记,所以我得到了重复的线路。 我已经将数据简化为可以触及圆的线,因此不必进行空间分析,而只需比较每种物种的时间间隔,就可以确定比较得出的是同一个人。 我现在正在R中寻找一种方法来识别那些条目: 在同一天以重叠的间隔进行 哪里是同一个物种 由不同的观察点(A或B或C或...)制成 在此示例中,我手动找到了同一个人的可能重复的条目。观察点不同(A <-> B),种类相同(Sst),开始时间和结束时间的间隔重叠。 现在,我将在data.frame中创建一个新字段“ duplicate”,为两行提供一个通用ID,以便能够导出它们并稍后决定要做什么。 我在很多地方搜索了已经存在的解决方案,但是没有发现有关我必须对物种的过程进行子集化(最好没有循环)并且必须比较2 + x个观察点的行这一事实。 一些数据可玩: testdata <- structure(list(bird_id = c("20150712_0810_1410_A_1", "20150712_0810_1410_A_2", "20150712_0810_1410_A_4", "20150712_0810_1410_A_7", "20150727_1115_1430_C_1", "20150727_1120_1430_B_1", "20150727_1120_1430_B_2", "20150727_1120_1430_B_3", "20150727_1120_1430_B_4", "20150727_1120_1430_B_5", "20150727_1130_1430_A_2", "20150727_1130_1430_A_4", "20150727_1130_1430_A_5", "20150812_0900_1225_B_3", "20150812_0900_1225_B_6", "20150812_0900_1225_B_7", "20150812_0907_1208_A_2", "20150812_0907_1208_A_3", "20150812_0907_1208_A_5", "20150812_0907_1208_A_6" ), obsPoint = c("A", "A", "A", "A", "C", "B", …

2
在R中捕捉栅格网格
我正在尝试在R中对齐两个栅格网格。对齐后,我希望能够将它们添加在一起。 我试图检查使a stack是否有效: grid_snap <- stack(habi_sdw, Pop_sdw) 我得到以下错误: compareRaster(x)中的错误:不同程度 栅格网格具有以下属性: show(habi_sdw) # class : RasterLayer # dimensions : 9187, 9717, 89270079 (nrow, ncol, ncell) # resolution : 0.00892857, 0.00892857 (x, y) # extent : -28.83706, 57.92186, -36.02464, 46.00214 (xmin, xmax, ymin, ymax) # coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs …

2
运行python脚本后如何退出QGIS?
我想通过运行python脚本qgis --code myscript.py,然后立即退出。我正在使用iface.actionExit().trigger(),当我从python控制台运行QGIS时,它会杀死QGIS,但当放入传递给的脚本时,它不会--code。 立即退出的正确方法是什么?我正在运行QGIS 2.0.1 更新:我也试过了sys.exit()。QGIS将其捕获并弹出以下窗口: An error occured during execution of following code: execfile('myscript.py') Traceback (most recent call last): File "", line 1, in File "myscript.py", line 14, in sys.exit() SystemExit 更新:os.kill(os.getpid(), 9)可以,但这是一个肮脏的hack,我正在寻找更好的东西。
10 qgis  python  pyqgis 

3
在PostGIS中添加其他几何列?
我正在将许多地理数据集导入PostGIS,而它们具有不同SRID的。(有些有EPSG:3857,有些EPSG:4326,有些其他)。 我想另外创建一个geometry column,例如。the_geom_mercator使用SRID EPSG:3857,并将原始geom列保留SRID在其中。 如何使用PostGIS功能做到这一点?

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.