Spatstat,R 中的插值数据点
Spatstat, Interpolating data points in R
我有协变量数据,即降雨量。我还有一个点模式,代表特定区域内地图上的定居点。我有一个问题,我所在地区的部分地区包含海洋,但是海上没有定居点,但降雨数据确实涉及海域。我希望将降雨值设置为附近陆地点的降雨值。
知道怎么做吗?
也许为了找到哪个降雨量 x 和 y 坐标代表海洋,我想创建一个包含所有平方公里中心点的数据框,然后导入匹配位置的降雨值,并查看哪些位置没有值。但我卡住了。这是我的代码:
> window<- data.frame(Lon=c(-1.560367, -1.078330 ), Lat=c( 50.576342, 51.243823))
> coordinates(window) <- ~Lon + Lat
>
>
> proj4string(window) = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
>
> proj4string(winch2) <- latlong
>
> window <- spTransform(window, bng)
>
> (floor (coordinates (window) / 1000) + 0.5) * 1000
>
> W2<- owin(c(431500,464500), c( 75500, 149500))
>
> Region<-Settlements[W2] ###Settlements is my data
>
> rain_im[W2] ###rain is my covariate as a pixel image
>
> as.data.frame(rain_im[W2]) ###Converted this into a pixel image
>
> `summary(Region)`
Marked planar point pattern: 308 points
Average intensity 1.261261e-07 points per square unit
Coordinates are given to 2 decimal places
i.e. rounded to the nearest multiple of 0.01 units
marks are numeric, of type ‘double’
Summary:
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.375 19.000 47.500 103.029 88.364 5500.000
Window: rectangle = [431500, 464500] x [75500, 149500] units
Window area = 2.442e+09 square units
请更清楚地描述您的数据。你说你有 "covariate data which is rainfall": 这个数据是什么格式?它是像素图像(其像素值是雨量),还是雨量计位置和记录的雨量的数据框?你有一些位于海上的像素的雨协变量值:你想用这些值做什么?你有什么数据可以告诉你哪些位置在海里,哪些在陆地上?
如果您有定义海岸线的多边形数据,您可以将其转换为 owin
window 对象,例如 Land
。然后,如果您的降雨数据是像素图像 Rain
,您可以 ClipRain <- Rain[Land, drop=FALSE]
将像素图像限制在陆地区域(将 NA
分配给海上的任何像素)。
如果您在某些位置有降雨数据,比如带有降雨值标记的点模式 RainRecords
,则 Smooth(RainRecords, sigma)
是包含降雨核平滑插值的像素图像,并且nnmark(RainRecords)
是一张像素图,其中每个像素值是最近记录位置的降雨量。通过对这些图像进行裁剪或采样,您可能可以获得所需的内容。
我有协变量数据,即降雨量。我还有一个点模式,代表特定区域内地图上的定居点。我有一个问题,我所在地区的部分地区包含海洋,但是海上没有定居点,但降雨数据确实涉及海域。我希望将降雨值设置为附近陆地点的降雨值。
知道怎么做吗? 也许为了找到哪个降雨量 x 和 y 坐标代表海洋,我想创建一个包含所有平方公里中心点的数据框,然后导入匹配位置的降雨值,并查看哪些位置没有值。但我卡住了。这是我的代码:
> window<- data.frame(Lon=c(-1.560367, -1.078330 ), Lat=c( 50.576342, 51.243823))
> coordinates(window) <- ~Lon + Lat
>
>
> proj4string(window) = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0")
>
> proj4string(winch2) <- latlong
>
> window <- spTransform(window, bng)
>
> (floor (coordinates (window) / 1000) + 0.5) * 1000
>
> W2<- owin(c(431500,464500), c( 75500, 149500))
>
> Region<-Settlements[W2] ###Settlements is my data
>
> rain_im[W2] ###rain is my covariate as a pixel image
>
> as.data.frame(rain_im[W2]) ###Converted this into a pixel image
>
> `summary(Region)`
Marked planar point pattern: 308 points
Average intensity 1.261261e-07 points per square unit
Coordinates are given to 2 decimal places
i.e. rounded to the nearest multiple of 0.01 units
marks are numeric, of type ‘double’
Summary:
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.375 19.000 47.500 103.029 88.364 5500.000
Window: rectangle = [431500, 464500] x [75500, 149500] units
Window area = 2.442e+09 square units
请更清楚地描述您的数据。你说你有 "covariate data which is rainfall": 这个数据是什么格式?它是像素图像(其像素值是雨量),还是雨量计位置和记录的雨量的数据框?你有一些位于海上的像素的雨协变量值:你想用这些值做什么?你有什么数据可以告诉你哪些位置在海里,哪些在陆地上?
如果您有定义海岸线的多边形数据,您可以将其转换为 owin
window 对象,例如 Land
。然后,如果您的降雨数据是像素图像 Rain
,您可以 ClipRain <- Rain[Land, drop=FALSE]
将像素图像限制在陆地区域(将 NA
分配给海上的任何像素)。
如果您在某些位置有降雨数据,比如带有降雨值标记的点模式 RainRecords
,则 Smooth(RainRecords, sigma)
是包含降雨核平滑插值的像素图像,并且nnmark(RainRecords)
是一张像素图,其中每个像素值是最近记录位置的降雨量。通过对这些图像进行裁剪或采样,您可能可以获得所需的内容。