2015-10-13 2 views
1

У меня есть файл формы карты от моих коллег, и у меня также есть некоторые данные наблюдений с их координатами, записанными в WGS84. Я прочитал шейп в R:Как изменить проекцию и преобразовать шейп-файл в растровую таблицу в R?

# read shapefile 
> shpmap <- readOGR(dsn = "soil_type", layer = "soil_type_data") 
OGR data source with driver: ESRI Shapefile 
Source: "soil_type", layer: "soil_type_data" 
with 18542 features 
It has 8 fields 

# show shapefile attributes 
> shpmap 
class  : SpatialPolygonsDataFrame 
features : 18542 
extent  : 44795.53, 1572888, 3187943, 4661428 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=aea +lat_1=25 +lat_2=47 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +ellps=krass +units=m +no_defs 

После того как я прочитал шейп, я обнаружил, что он использует Красовский ellps. Теперь я хочу сделать две вещи. Сначала измените проекцию шейп-файла в соответствии с моим наблюдением WGS84. Во-вторых, шейп-файл содержит несколько атрибутов почвы, и я хочу преобразовать их в объект растрового объекта.

Я новичок в работе с файлами ГИС в R, и я действительно смущен. Буду признателен за любые предложения! Заранее спасибо!

+0

Вам нужно для 'spTransform()' и 'к Rasterize()'. –

+0

Спасибо! Я разработал его, следуя вашим предложениям! –

ответ

1

Используйте spTransform, чтобы изменить crs.

library(rgdal) 
g <- spTransform(shpmap, CRS("+proj=longlat +datum=WGS84")) 

Вы можете использовать rasterize (растровый пакет) для создания RasterBrick (Stack)

+0

Добро пожаловать. –

+0

Спасибо! Уже решена. Для растеризующей части я конвертирую каждый атрибут в один растровый объект, а затем «стекаю» их в объект растрового объекта. –

+0

Это работает, но может быть более эффективным растеризовать все атрибуты за один шаг (не предоставлять аргумент 'field'); а затем используйте 'deratify' в результате для создания« RasterBrick ». – RobertH