如何使用QGIS,GRASS GIS或SAGA GIS自动绘制中间轮廓?


10

我正在绘制陡峭的山脉。我的主要轮廓间隔是50 m,中间的轮廓间隔是10 m。在陡峭的地区,10 m的间隔太小,因此我需要离开10 m的间隔,而改用20 m或25 m。

有没有办法在QGISSAGA GISGRASS GIS中实现自动化?

Answers:


7

您可以尝试使用坡度网格覆盖轮廓线,并仅显示某些轮廓线,具体取决于该轮廓线下方的坡度平均值。


有趣的解决方案!您是否要进行空间连接以将坡度的平均值链接到轮廓线?
Simbamangu,2012年

@Simba使用区域统计。删除区域最大斜率太陡的轮廓线可能会更好。
ub

2

据我所知,QGIS中没有针对此问题的自动解决方案。但是,应该可以使用基于规则的渲染器来指定要绘制哪些轮廓,哪些应该忽略。


2

如果我正确理解问题,则说明您正在使用Shapefile,该文件已经生成了所有轮廓。您应该有一个属性表,轮廓值是其中一个字段,例如'contour':

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

在QGIS中,您可以做几件事。一种方法是创建Shapefile的副本,然后删除不需要的轮廓:

  1. 启动编辑会话,打开属性表,然后打开字段计算器。
  2. 选择“创建新字段”并使其成为整数字段;称之为“保持”。
  3. 在“表达式”字段中输入一个表达式,如果满足正确的条件,该表达式将为您提供数字1-您希望保留所有20的倍数的轮廓。因此:(contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'这种“匹配”功能不太好,但是QGIS缺乏模数数学功能,这会使它变得更好-我认为)。
  4. 单击“确定”,您将创建一个新列,其轮廓为1,轮廓为20的倍数,零为轮廓。
  5. 搜索(选择)keep = 0的所有行并将其删除。现在,新的Shapefile排除了所有其他轮廓。

第二种选择是不显示不想显示的轮廓。这有点优雅。

  1. 打开“属性”对话框,然后选择“样式”选项卡。
  2. 选择左上方的“基于规则”。
  3. 为符合所需条件的轮廓添加规则(按“添加”按钮)。
    • 在“规则属性”对话框中,输入一个标签,例如“ 20”;
    • 在“过滤器”框中,输入要匹配的表达式,就像上面的表达式一样: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • 选择要使用的符号样式,然后单击“确定”并应用该样式。

此时,唯一显示的轮廓将是与表达式匹配的轮廓。

关于第二个选项的妙处在于,您可以为不同的比例尺创建规则-当您缩小到某个比例尺时可以有一个规则,该比例尺可能仅显示100米的轮廓线(“%00”仅在表达式),然后再显示另一个规则,则在进一步放大时显示20米的轮廓等。

如果您正在寻找一种在100 m等高线之间创建新的25 m等高线的方法,那么实际上可能最好从数字高程模型创建新的等高线文件。我不确定是否有任何方法可以在其他轮廓之间可靠且正确地插入新的25 m轮廓。


0

当我有一个轮廓shapefile(或Spatialite数据库)包含10米垂直间隔的轮廓,并且我希望仅绘制(例如)50米间隔出现的轮廓时,这就是我的处理方法。

使用以下SQL片段加载shapefile并对其进行查询:'(ELEV%50)= 0'。其中“ ELEV”是包含高程数据的属性。

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.