QGIS 裁剪数据、投影转换

1,007 阅读2分钟

使用 QGIS Desktop 操作

裁剪数据

这里演示的是 .shp 文件

1. 打开 QGIS,加入 .shp 图层数据,加入两个矢量数据

图层 > 添加图层 > 添加矢量图层

image.png

选择 .shp 文件

image.png

2. 裁剪矢量数据

加入两个矢量图层后,选择 "矢量 > 地理处理工具 > 裁剪"

image.png

打开 裁剪 对话框,分别选择 “输入矢量图层”、“裁剪图层”、“输出shape文件”,点击运行。

image.png

裁剪完之后,QGIS 自动将裁剪后的图层加入到地图中。

投影转换

在图层控制器中,右击 图层,选择导出 -> 要素另存为

image.png

打开要素另存为 对话框后,确保输出格式为 ESRI Shapefile 文件,在文件名一栏选择到保存的目录,点击 CRS (Coordinate Reference System) 右侧的图标

image.png

打开选择 CRS 对话框,搜索 坐标参照系,选择其中一个,点击保存

image.png

选择了坐标系统后,单击“确定”按钮返回到“矢量图层另存为”对话框中,再次单击“确定”按钮。

使用 OGR 命令行工具

在安装 OGIS 时,也一同安装了运行 GDAL 与 OGR 功能的命令行工具,而且在桌面还有一个快捷方式,即 OSGeo4W。

运行 OSGeo4W Shell

在桌面上双击 OSGeo4W 快捷方式

image.png

裁剪数据

ogr2ogr -skipfailures -clipsrc E:\PhiladelphiaBaseLayers\clipFeature\city_limits.shp E:\PhiladelphiaBaseLayers\clipped\roads.shp E:\PhiladelphiaBaseLayers\roads.shp

参数解释:

ogr2ogr -skipfailures -clipsrc boundary.shp output.shp input.shp
  • -skipfailures 在运行过程中如果遇到某个特定的要素失败,不要因此停止整个过程,而是跳过失败的要素并继续处理其余的数据
  • -clipsrc 这个参数用于指定一个裁剪区域,它告诉 ogr2ogr 仅转换与指定区域相交的要素。使用 -clipsrc 时通常需要提供一个几何形状或者一个文件,用来定义裁剪区域。
  • boundary.shp 是定义裁剪区域的矢量文件
  • output.shp 是转换后的输出文件
  • input.shp 是要转换的输入文件

投影转换

ogr2ogr -t_srs EPSG:3857 -s_srs EPSG:4326 E:\PhiladelphiaBaseLayers\clippedAndProjected\roads.shp E:\PhiladelphiaBaseLayers\clipped\roads.shp

参数解释:

ogr2ogr -t_srs EPSG:3857 -s_srs EPSG:4326 output.shp input.shp
  • -t_srs 输出坐标参照系
  • -s_srs 输入坐标参照系
  • output.shp 输出 shp 文件
  • input.shp 输入 shp 文件

使用循环命令

for %X in (*.shp) do ogr2ogr -skipfailures -clipsrc E:\PhiladelphiaBaseLayers\clipFeature\city_limits.shp E:\PhiladelphiaBaseLayers\clipped\%X E:\PhiladelphiaBaseLayers\%X

参数解释:

for %X in (*.shp) do ...

批处理

cd /d E:\PhiladelphiaBaseLayers
set ogr2ogrPath="D:\QGIS\bin\ogr2ogr.exe"
for %%X in (*.shp) do %ogr2ogrPath% -skipfailures -clipsrc E:\PhiladelphiaBaseLayers\clipFeature\city_limits.shp E:\PhiladelphiaBaseLayers\clipped\%%X E:\PhiladelphiaBaseLayers\%%X
for %%X in (*.shp) do %ogr2ogrPath% -skipfailures -t_srs EPSG:3857 -s_srs EPSG:4326 E:\PhiladelphiaBaseLayers\clippedAndProjected\%%X E:\PhiladelphiaBaseLayers\clipped\%%X

将以上代码 另存为 clipAndProject.bat 。双击运行,便可执行裁剪与投影变换工作。

ogr2ogr 文档