首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中映射soil_moisture时geom_tile失败

在R中映射soil_moisture时geom_tile失败
EN

Stack Overflow用户
提问于 2020-10-14 14:37:58
回答 1查看 41关注 0票数 0

我有两张土壤湿度hdf图像。第一个分辨率为3 3Km,第二个分辨率为36 3Km。使用相同的代码,第二个可以在下面的代码中进行映射:soil moisture in 36Km resolution

第一个没有显示土壤水分信息:soil moisture in 3km resolution

我使用的代码如下

代码语言:javascript
复制
install.packages("hdf5")
BiocManager::install("hdf5")

devtools::install_github("hhoeflin/hdf5r")

library(devtools)
library(BiocManager)
library(rhdf5)
library(tidyr)
library(ggplot2)

mydata <- h5read("/Users/ss/Downloads/SMAP_L2_SM_A_01725_D_20150529T123629_R13080_001.h5",
                 "Soil_Moisture_Retrieval_Data")
str(mydata)

latitude<-mydata$latitude
longitude<-mydata$longitude
soil_moisture<-mydata$soil_moisture
soil_moisture[soil_moisture==-9999]<-NA
soil_moisture[soil_moisture>0.5]<-NA
soil_moisture[soil_moisture<0.02]<-NA

data<-cbind(latitude,longitude,soil_moisture)
data1<-data[complete.cases(data),]

soil_moisture = soil_moisture*4

data1<-as.data.frame(data1)
xlmax<-max(data1$longitude)
xlmin<-min(data1$longitude)
ylmax<-max(data1$latitude)
ylmin<-min(data1$latitude)


dataplot<-ggplot(data1)+
          geom_tile(aes(x=longitude,y=latitude,fill=soil_moisture))+
          xlab("Longitude (deg)") + # x-axis label
          ylab("Latitude (deg)") +
          geom_path(data = map_data("world"),
                    aes(x = long, y = lat, group = group))+
          scale_fill_distiller(palette = "YlOrRd",limits=c(0.02,0.5),name="SM") +
          coord_fixed(xlim =c(floor(xlmin),ceiling(xlmax)),ylim=c(floor(ylmin),ceiling(ylmax)))
print(dataplot)
# ggsave("myplot.png",width=8,height=8,unit="cm",dpi=300)
EN

回答 1

Stack Overflow用户

发布于 2020-10-14 17:49:40

对于可能遇到相同问题的任何人,您可以使用

代码语言:javascript
复制
dataplot<-ggplot(data1)+
          geom_point(aes(x=longitude,y=latitude,fill=soil_moisture))+
          xlab("Longitude (deg)") + # x-axis label
          ylab("Latitude (deg)") +
          geom_path(data = map_data("world"),
                    aes(x = long, y = lat, group = group))+
          scale_fill_distiller(palette = "YlOrRd",limits=c(0.02,0.5),name="SM") +
          coord_fixed(xlim =c(floor(xlmin),ceiling(xlmax)),ylim=c(floor(ylmin),ceiling(ylmax)))
print(dataplot)

绘制3 3km分辨率的土壤水分分布图。

用geom_point替换geom_tile。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64347843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档