linder是一种基于机器学习的土地利用/土地覆盖(LULC)分类器,使用哨兵图像。

linder的Python项目详细描述


土地利用指数

计算城市/农村地区土地覆盖的管道。在

如何使用?在

快速演示:

frompathlibimportPathimportlinderasld# get a list of CSV files of calculated land cover fractions of all downloaded imageslist_path_fraction=ld.get_land_cover(51.515070,-0.008555,51.489564,0.034932,"2016-01-01","2017-10-01",path_GUF="Data/GUF/WSF2015_v1_EPSG4326/WSF2015_v1_EPSG4326",path_save=Path("~/Downloads/linder_res").expanduser(),)# synthesise the above results to one `DataFrame`df_lc=ld.proc_fraction(list_path_fraction)

必需的库

对于macOS,请下载并安装grass软件包:

^{pr2}$

其他python库

使用conda为该管道创建一个新的环境:

conda env create -f GDAL.yml

依赖项详细信息请参阅^{}。在

依赖关系数据集

nc_spm_08数据集

此数据集包括GRASS所需的投影文件。 下载它here。在

GUF数据集(可选)

GUF (Global Urban Footprint)是由DLR制作的全球城市覆盖数据集。 这条管道使用GUF来提高预测城市特征的准确性。在

配置

哨兵枢纽

请参阅this page for setting up a new configuration。 然后更新sentinelhub实例ID,如下所示:

sentinelhub.config --instance_id [your-instance-ID]

细节

这是一条计算所需区域土地覆被的管道。它包括:

  • 步骤1:获取区域的位置(latlon

  • 第二步:获取所需区域的卫星图像

  • 第三步:土地覆盖预测分为三类:

    • 1-城市
    • 2-绿色
    • 3-水和
    • 4-其他
  • 步骤4:将GUF数据叠加到预测中。因此,土地覆被变为1-水2-绿色3-城市4-其他

  • 步骤5:覆盖来自OSMMicrosoft data的建筑数据(仅适用于美国)。因此,最终土地覆盖包括1-水2-绿化3-建筑4-铺面5-其他

使用这个管道很简单,只需选择坐标,并提供GUF数据和/或建筑数据。用户可以选择可用的数据。例如,在没有GUF数据的情况下,管道使用预测,或者在没有Microsoft数据的情况下,管道使用OSM数据进行建筑物。请注意,添加GUF数据可以使土地覆盖的最终结果更加准确。在

一些技术细节:

  • 不同的Python和GDAL包合并可能不是很有效。 管道使用python接口直接使用GRASS函数(例如v.overlay)来加速合并过程。在

  • 管道使用预先训练的模型来预测土地覆盖。 目前,该模型在科伦坡训练,但各种测试表明,它在其他地方也有很好的表现。 一个更复杂的模型可以通过使用更多的数据集进行训练。在

  • 请注意,虽然OSM数据是自动从网站获取所需区域的,但需要手动下载所选位置的Microsoft数据。这可以在将来实现自动化。在

一些例子

斯里兰卡科伦坡

Colombo, Sri Lanka

美国匹兹堡

Pittsburgh, United States

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android Studio中使用while循环显示包含textview对象的数据   创建名为“userController”的bean时发生java错误:通过字段“userService”表示未满足的依赖关系   java PDFBox PDFImageWrite。writeImage未正确处理所有字符   java无法识别代码中的nzec错误   无法更改java TabLayout字体   在Java中使用子字符串删除部分字符串   Java中的listener addPropertyChangeListener方法   java可以同时拖动多个对象   java如何将数组中的值添加到向量中   java为什么在Camel 3.7.3中无法正确计算属性?   与后端问题不同的机器中的java客户端资源   带字符串的java分割字节数组?   java On_选项_项目_选择的方法说明   java如何在画布的父画中画一个圆?   连接超时和打开连接数的java Netty通道配置   java mysql中如何防止向数据库中插入重复数据   升级到macOS Big Sur后,java无法启动Neo4j控制台应用程序   在Java中使用XSLT将XML转换为HTMLString的ajax   java无法使用Apache POI获取Excel工作表中的数据