全网最详细SoilGrid数据的下载与提取(含四种方法)

发布于:2023-02-16 ⋅ 阅读:(1445) ⋅ 点赞:(0)

方法一:R语言 (可直接提取并导出数据,快慢依电脑性能和网速而定...)

soil_world在R中的使用指南(可以直接调用SG的数据)

代码如下 ///感谢zihao师兄鼎力相助

install.packages("geodata")
library(geodata)
library(raster)
library(sp)
library(rgdal)

# Get soil grid layers (tif files)
gph <- soil_world(var="phh2o", depth=5, path=tempdir())

#Image visualization
plot(gph, ylim = c(-60,90), xlim = c(-180,180),
col = colorRampPalette(c("#3288BD","#66C2A5","#FEE08B","#D53E4F"))(250))

# create RasterLayer
ph <- raster(gph)
plot(ph)

# Get soil grid points  
data = read.csv("point.csv")
coordinates(data) = c("longitude", "latitude")
phd <- extract(x = ph, y = data)
datapoint <-data.frame (data,phd)
write.csv(datapoint,"E:/Seoyeol/Paper/4ENG2/Data/ph.csv")#生成csv文件

ps:一些栅格数据的R语言处理方法,下面这个博客有介绍

r 语言 处理栅格数据_kbasg的博客-CSDN博客_r语言处理栅格数据r 语言 处理栅格数据作为新手,记录自己学到的一些东西,也希望能对需要的人有稍许帮助常用的包raster #处理栅格数据rasterVis #栅格数据可视化RColorBrewer #颜色设置ncdf4 #nc数据的读取常用的数据类型tiffnc数据导入和简单的可视化tiff数据读取读取一个tiff文件 raster() 函数## 导入使用的包library(raster)library(rasterVis)library(RColorBrewer)https://blog.csdn.net/kbasg/article/details/111029864

方法二:通过GEE下载SG的tif影像,然后再用R提取

markdown/access_on_gee.md · master · ISRIC / SoilGrids / soilgrids.notebooks · GitLab (wur.nl)

该网页给出了每个土壤指标在GEE上的Asset

点击蓝色字体就会跳转至GEE页面,有对每一个影像波段的介绍。每一个波段对应一个土层深度。

此处以下载phh2o_0-5cm影像为例

下载的影像即为对应指标及深度的全球TIFF影像,然后再用R Studio进行提取即可,代码可参考方法三中的数据提取部分。

GEE完整代码如下,自取所需进行改动即可:


//加载数据集
var data = ee.Image("projects/soilgrids-isric/phh2o_mean");  

//筛选数据
var data_selected = data
               .select('phh2o_0-5cm_mean'); //选择波段

print("data_selected", data_selected); 

 Export.image.toDrive({  
       image: data_selected,  
       description: "phh2o_0-5cm_mean", //任务名
       fileNamePrefix:"phh2o_0-5cm_mean",  //文件命名
       folder: "SoilGrid",  //保存的文件夹
       scale: 250,  //分辨率
       maxPixels: 1e13,  //最大像元素,默认就好
       crs: "EPSG:4326"  //设置投影
   });  

 由于影像过大,下载下来的是被裁剪过的,需要自行拼接。可参考:

Python中arcpy栅格创建与遥感影像多幅图像批量拼接(Mosaic) (baidu.com)

ps:代码语言为Python,由于用到了arcpy,需在ArcGIS自带的IDLE中运行

# -*- coding: utf-8 -*-
"""
Created on Mon Jul 18 22:28:49 2022

@author: i
"""

import os
import arcpy

#路径设置
file_path="E:/GLDdata/SoilGrid/Original/PH/"
out_file_path="E:/GLDdata/SoilGrid/"
out_file_name="ph_0_5.tif"

#获取file_path路径下的栅格文件,并存储于file_name_list列表中
file_name_list=os.listdir(file_path)

#影像镶嵌
tif_file_path=file_path+file_name_list[0]
cell_size_x=arcpy.GetRasterProperties_management(tif_file_path,"CELLSIZEX")
cell_size=cell_size_x.getOutput(0)
value_type=arcpy.GetRasterProperties_management(tif_file_path,"VALUETYPE")
describe=arcpy.Describe(tif_file_path)
spatial_reference=describe.spatialReference

arcpy.CreateRasterDataset_management(out_file_path,out_file_name,cell_size,"16_BIT_SIGNED",
                                     spatial_reference,"1")
out_file=out_file_path+out_file_name

#遍历循环,并通过arcpy.Mosaic_management()函数拼接
for file in file_name_list:
    file_path_name=file_path+file
    print(file_path_name)
    arcpy.Mosaic_management([file_path_name],out_file)

拼接后的tif影像如下:

方法三:从网页端用传统方法下载(仅适用少量数据)

数据下载

  1. 下载网址 SoilGrids250m 2.0
  2. 点击左侧菜单栏的download,然后选SoilGrid

     

     3.在Layer那边选择要下载的土壤属性

      

     4.然后设置好depth、value

     

     

     5.设置经纬度范围(该样点上下零点零几的波动)

      

(SG网页的下载范围仅限2°,所以会比较麻烦,超出范围就会报错)

      

     6.都设置完后点Download就成功下载了一个tif影像

数据提取

1.存有所需数据点经纬度坐标的EXCEL表(title最好跟图中一样)并另存为csv文件

2.用R语言来提取从tif影像中的值

(代码参考自博客(3条消息) R语言提取降水和温度数据_Mrrunsen的博客-CSDN博客

library(rgdal)
library(raster)
library(sp)
#导入经纬度数据
coords <-read.csv("D:/GLD_data/116_118.csv", header=TRUE,row.names = 1)
coordinates(coords)=c("lons","lats")
#导入tif数据
tav<-raster("D:/GLD_data/SoilGrid/N.tif")
#导出数据tavg可改为对应指标名
tavg <- extract(x = tav, y = coords)
dat<-data.frame(coords,tavg)
write.csv(dat,"D:/GLD_data/N.csv")


library(rgdal)

library(raster)

library(sp)

这几个包有缺失的话得先安装

具体可以看教程

R语言安装package的两种方法_360新知 (so.com)

存储路径有个AppData文件夹是在隐藏空间里

得勾选隐藏项目才会出现

3.代码运行成功后就会生成对应的csv文件,tavg列就是提取出来的数值。

方法四:用ArcGIS的Web服务直接调用

WMS |说明伊斯里克 (isric.org)

使用 Web 服务访问 SoilGrids 图层的说明

地图服务器入口页面 (isric.org)

可用于QGIS 和 ArcGIS 等 GIS 软件下载特定区域数据,包含指示的链接(各个土壤特性的link)

///如果只有作图需求就Add WMS,要调用数据则要Add WCS。用WMS调用出来的就只是图而已,并无法提取土壤数据。WMS和WCS的区别下面这个连接有详细描述

(70条消息) WMS、WFS、WCS、WPS、WMTS、TMS、WMSC等常见地图服务的区别_自闭火柴的玩具熊的博客-CSDN博客_wms和tms的区别

调用出来的结果影响如下,是含有数据的栅格影像。

 ps:但最终不知道是因为影像数据太大(17个G)还是电脑性能原因没有办法将影像以TIFF格式保存到本地。此外,定义投影工具没法改变影像投影。//如果有想法或解决方式欢迎滴滴TUT


网站公告

今日签到

点亮在社区的每一天
去签到