일반적으로, 당신은 단순히 수입 한 후 R 객체에 추가 할 수 있습니다 :
proj4string(imageData) <- CRS("your projection")
내가 좋아하는 당신의 TIF 예를 들어에서 GoogleEarth 프로젝션에 있다면 그것을 위해 EPSG를 사용하여, 나는 할 것이다 :
proj4string(imageData) <- CRS("+init=EPSG:4326")
그냥 당신이 NAD83 정확한 프로젝션 (이 사이트가
http://spatialreference.org/을 도울 수) 손쉽게 찾을 수 있습니다.
그럼 당신은 투사의 선택에 그것을 재 투영 할 수 있습니다 보조 노트로
imageDataProj <- spTransform(imageDataProj, CRS("your new projection"))
을, 나는 항상 래스터 형식을 처리하기위한 raster
패키지를 사용하여 선호합니다. 그러나 R로 큰 래스터 파일의 투사를 변경하는 것은 까다로울 수 있으므로 이제 GDAL을 직접 사용합니다 (gdalwarp
통해). gdalUtils
패키지를 사용하여 모든 gdal 옵션을 R에서 아주 쉽게 호출 할 수 있지만 결과를 R로 다시 가져와야합니다. 영업 이익에서 코멘트 다음
편집 :
래스터 패키지 사용 :
library(raster)
TIF로드 :
rr <- raster("C:\\temp\\n0r_201601011100.tif")
저장하면 픽셀 기능에 방정식을 조정합니다.나는 위도 기능 변경 드러내
Lon = function(JJ) 0.01 * JJ + 162
Lat = function(II) 0.01 * II + 50.0
픽셀의 원시 래스터의 범위를 가져옵니다 (음의 부호를 제거를, 당신이 그 유효성을 검사해야합니다, 그것은 작동하지 않은 것은) 좌표 :
ext.rr <- extent(rr)
당신이 통신에 준 방정식 다음 수정 된 값 (와
rr2 <- raster(nrows=nrow(rr), ncols=ncol(rr), xmn=Lon([email protected]), xmx=Lon([email protected]), ymn=Lat([email protected]), ymx=Lat([email protected]))
채우기이 새로운 래스터 :
투사됩니다 비어있는 새 래스터 준비는 좋은 해상도와 범위를 가지고 엔트) :
values(rr2) <- (values(rr) - 7) * 5
그리고 당신이 얻을 :
rr2
class : RasterLayer
dimensions : 2600, 6000, 15600000 (nrow, ncol, ncell)
resolution : 0.01, 0.01 (x, y)
extent : 162, 222, 50, 76 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : layer
values : -35, 50 (min, max)
공지 사항이 위도 긴 투사 래스터 기능에 의해 자동으로 픽업했다. 잘하면 그것은 당신이 찾고있는 것입니다.
도움이됩니다. 내 데이터는 픽셀 좌표입니다 :'Lat = -0.01 * I + 50.0','Lon = 0.01 * J + 162'. I와 J는 그리드의 각 셀의 직선 좌표입니다. 따라서 프로젝션 변경을 수행하기 전에 먼저이 작업을 수행해야합니다. 또한, 각 셀의 정수 값을 변환하는 가장 좋은 방법은 무엇입니까 :'y = (intX - 7) * 5'? –
내 의견을 다음과 같이 업데이트했습니다. – Bastien
나는 겸손한 태도로 인사합니다. 고맙습니다. –