2015-05-19 2 views
3

Есть ли способ «конвертировать IMG-формат изображения из WGS84 в NAD83» с использованием программирования R?Как преобразовать WGS84 в NAD83 с использованием R?

Входное изображение:

Имя: LST_2011-03-30_WGS.img

Формат: IMG (ERDAS)

Проекция: UTM, Zone 12

Spheroid: WGS 84

Datum: WGS 84


Вывод изображения:

Имя: LST_2011-03-30_NAD.img

Формат: IMG (ERDAS)

Проекция: UTM, Zone 12

Spheroid: GRS 1980

Datum: NAD 83

+0

Возможно, [это] (http://gis.stackexchange.com/questions/45263/converting-geographic-coordinate-system-in-r) поможет. – r2evans

ответ

0

Вы можете использовать пакет gdalUtils, который предполагает, что пользователь имеет рабочую GDAL по своей системе. Если параметр «gdalUtils_gdalPath» установлен (обычно с помощью gdal_setInstallation), будет использоваться GDAL, найденный в этом пути. Если ничего не найдено, будет выполнена gdal_setInstallation, чтобы попытаться найти рабочий GDAL, который имеет правильные драйверы, как указано в параметре «of» (выходной формат).

Подробнее о inside-r.org.

Здесь функция gdalwarp() кажется, чтобы сделать работу:

gdalwarp(srcfile="/your/path/LST_2011-03-30_WGS.img", #source file 
     dstfile="/your/path/LST_2011-03-30_NAD.img", #destination file 
     s_srs="+proj=utm +zone=12 +datum=WGS84 +no_defs +ellps=WGS84", #input spatial reference 
     t_srs="+proj=utm +zone=12 +datum=NAD83 +no_defs +ellps=GRS80") #output spatial reference 

N.b .: Поскольку я не имею изображения, я не мог убедиться, что это действительно работает с выше предусмотренных параметрами. Однако я тестировал его с помощью другой .tif растровой и других пространственных систем отсчета, и это сработало.

0

Вы можете сделать это

library(raster) 
r <- raster('LST_2011-03-30_WGS.img') 

## crs is normally defined, see 
r 
## but if it is not, you can set it 
## crs(r) <- "+proj=utm +zone=12 +datum=WGS84 +no_defs +ellps=WGS84" 

# set up an output RasterLayer 
x <- raster(r) 
crs(x) <- "+proj=utm +zone=12 +datum=NAD83 +no_defs +ellps=GRS80" 

# compute  
x <- projectRaster(r, x) 
+0

Вам действительно нужно указать все параметры, да? Удивительно, что нет более элегантного решения, такого как 'crs (map, name =" NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet ")', который не требует, чтобы я все это знал. – MichaelChirico

+1

Как легко или проще знать «NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet» '? В любом случае, этот сайт позволяет легко обнаружить: http://spatialreference.org/ – RobertH

+0

Это, по общему признанию, долго. Но для меня, по крайней мере, у названного CRS всегда есть много привязок к моему конкретному приложению - когда я делаю карты в Мичигане, это «NAD_1983_StatePlane_Michigan ...». Это более интуитивно понятное (мне), чем упомянутый список.Во всяком случае, ссылка, которую вы предоставили, является отличной ссылкой; благодаря! – MichaelChirico