6个开源项目提高GIS编程技能(附教程项目地址)


发布日期 : 2021-08-16 01:18:29 UTC

访问量: 192 次浏览

地理空间编程极具挑战性, 尤其对于 GIS 或编程领域的新手而言。 然而,构建项目的过程通常也非常有趣, 因为它会帮助您获得实用的开发技能, 以及将理论知识应用于开发其它的项目。

在本文中,我们展示了六个项目, 可帮助您提高地理空间编程技能。 我们鼓励多专注于理解基本概念, 有时,理解概念比编写代码更重要。

1. 矢量/栅格文件转换器

工具:

  • Web: HTML,CSS,JS,Leaflet,React,Turf JS,shapefileJs等
  • 桌面: Python, shapely, fiona, geopandas, ogr2ogr, pyGUI等
  • API: Django/Geodjango, Node等

先决条件:

至少具有以上列出的一种编程语言基础知识。

概要:

构建用于在多种矢量和栅格 GIS 数据格式之间进行转换的平台。 例如,

  • Esri Shapefile - GeoJSON;
  • GeoJSON - topoJSON;
  • KML - GeoJSON;
  • GeoTiff - ECW;
  • Geotiff - COGs;
  • PNG - GeoTIFF;
  • GEOTIFFs - JPEG;
  • CSV - Esri Shapefile;

将以上平台构建为一个项目将大大提高您的开发技能, 通过大量的研究,以及结合多个工具和库的实践经验,您将会收获颇丰; 除此外,也可用您认为最合适的语言来构建,可在Web、桌面应用程序或API上使用, 无论选择哪种方式,都会在此练习过程中学到很多经验。

教程:

2. 构建QGIS插件

工具:

  • Python, QGIS, QT Designer.

先决条件:

鉴于 QGIS 的经验,以及对Python 中面向对象编程(OOP)范例的理解。

概要:

QGIS是功能强大的开源地理空间软件, 构建插件被认为是一种可以提高 Python 编程的技能方式。 QGIS 是一个开源工具,可以查看任何插件的代码结构,也可以根据需求进行修改。

QGIS 存储库中有大量的插件, 找到能够解决您问题的 QGIS 插件,将其进行编码。

![qgis插件库](https://www.osgeo.cn/static/upload/9a/9abea27a-e858-11ec-b261-00163e0533f4_m.jpg)

教程:

3. 空间笔记标签

工具:

  • 地图制图库: Leaflet
  • 后台: Django
  • 数据库: PostGIS

先决条件:

Django 基本知识。

概要:

该项目的主要目的是提高web-GIS 技能。 如果您曾经搜索过针对初学者的 Web 开发项目理念, 可能会在列表中的某处找到“待办事项列表”。 通常,待办事项列表包含添加、查看、编辑和删除项目列表的功能; 同样,您也可以尝试为空间数据创建 “创建、读取、更新、删除 (CRUD) ” 的功能。

例如 Bookmark note 应用程序, 用户可在其中将 note 添加到地图上。 添加的 note 必须包含经纬度形式的位置信息, 并存储在空间数据库中。 出于可视化目的, 应从数据库中获取所需的 note。

![youtube-tutorial-geodev](https://www.osgeo.cn/static/upload/ee/ee35e5a8-e858-11ec-aa2e-00163e0533f4_m.jpg)

4. 构建遥感/地球观测应用程序

工具:

  • Python, R, Google Earth Engine, JS, HTML & CSS, Leaflet JS, Mapbox JS

先决条件:

具有上述编程语言和/或平台的经验。

概要:

该平台可以使用 Sentinel 开放卫星图像生成一个区域的时间序列地图, 用户能够绘制边界或上传边界并生成地球上位置索引的时间序列。 该项目可探索以下 Python 工具和技术:

  • Earth observation
  • SpatioTemporal Asset Catalog (STAC) specification
  • Cloud Optimized Geotiff (COGS)
  • Copernicus constellations
  • Map tiling

教程:

5. 自动化

工具:

  • Python, PyQGIS, ArcPy, R

先决条件:

具有使用 QGIS 和/或 ArcMap/ArcGIS Pro 的经验并了解 Python 编程语言。

概要:

诸如我们生活中存在的一些重复性的工作, 例如坐标格式之间的转换(如十进制度到度分秒,将文件格式从一种转换为另一种等), 回想一下, 您每天从事的重复性工作是什么呢? 可以尝试利用您最喜欢的编程语言将它们自动化。

教程

6. Web-GIS 数据可视化门户

工具:

  • HTML, CSS, JavaScript, Leaflet, GeoServer

先决条件:

对 HTML、CSS、JavaScript 和 GeoServer 有基本的了解 。

概要:

Web-GIS 是传播地理空间数据和处理工具的一种廉价而简单的方式。 许多机构都有兴趣向用户分发地图和处理工具, 且不受时间和位置限制。 Web-GIS 允许与地理空间数据进行可视化交互。 通过使用 Leafletjs、Openlayers、Mapbox 等地图制图库, 在代码内开发地图可视化界面会更加容易。 然而直接使用地图制图库,很难管理具有各种文件格式的大量数据, 为解决此问题,我们可以使用 GeoServer。

GeoServer 是一个用于共享地理空间数据的开源服务器。 它提供开放地理空间联盟 (OGC) 标准协议, 例如 Web 要素服务 (WFS)、Web 地图服务 (WMS) 和 Web 覆盖服务 (WCS)。 此类服务使发布和共享地理空间数据变得非常容易。