Сопоставление точек с растром в разных проекциях
Я сопоставляю данные о происшествиях для вида, представляющего интерес для растровых данных о климате из DAYMET, но у меня возникают проблемы с сопоставлением точек с растрами.
По сути, у меня есть растр климатических данных дневного времени (tmin), который не имеет проекции при загрузке, но находится в конформной конической форме Ламберта ( https://daac.ornl.gov/DAYMET/guides/Daymet_mosaics.html), поэтому я установил CRS:
#import daymet raster
tmin=raster("Tmin.tif")
#set projection for daymet data -> Lambert conformal
proj4string(tmin)<-CRS("+proj=lcc +lon_0=-100 +lat_0=42.5 +x_0=0 +y_0=0 +a=6378137 +rf=298.257223563 +lat_1=25 +lat_2=60")
И затем я импортирую данные о происшествии, которые находятся в WGS84 lat/long(x,y), project и transform, чтобы соответствовать tmin:
#import occurrences -> sp points
species<- read.csv("species_sites.csv", header=T)
coordinates(species)=~X+Y
#project occurences
projection(species) <- CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 ")
species <- spTransform(species, crs(tmin)) #transform to match daymet raster
Проблема в том, что они не совпадают, когда вы строите график вместе, и если вы посмотрите на экстенты, они отключены на пару порядков:
> species
class : SpatialPointsDataFrame
features : 219
extent : 658883.2, 687373.3, 398524.3, 441106.2 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
variables : 3
names : Site, Species, Season
min values : 1, 0, -
max values : 219, 1, 2014
> tmin
class : RasterLayer
dimensions : 126, 138, 17388 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : 591.25, 729.25, 355.5, 481.5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lon_0=-100 +lat_0=42.5 +x_0=0 +y_0=0 +a=6378137 +rf=298.257223563 +lat_1=25 +lat_2=60
names : Tmin
values : -9.410258, -7.011579 (min, max)
Итак, я соответствовал экстентам:
species@bbox<-as.matrix(extent(tmin))
но точки все еще не совпадают с растром. Не уверен, что еще делать. Любые предложения или люди с более подробным знанием данных дневного метания, которые могут знать, что происходит?
1 ответ
Спасибо @rar, понял это прошлой ночью... дох.
просто нужно изменить CRS на:
CRS("+proj=lcc +lon_0=-100 +lat_0=42.5 +x_0=0 +y_0=0 +lat_1=25 +lat_2=60 +datum=WGS84 +units=km")