我尝试使用R
和raster
包更改光栅投影。输入光栅投影是Lambert Azimuthal;参数在这里:
Coordinate System:
Lambert_Azimuthal_Equal_Area
False_Easting: 4321000,000000
False_Northing: 3210000,000000
Central_Meridian: 10,000000
Latitude_Of_Origin: 52,000000
GCS_ETRS_1989
Datum: D_ETRS_1989
Prime Meridian: 0
PROJCS
["ETRS_1989_LAEA",
GEOGCS ["GCS_ETRS_1989",
DATUM ["D_ETRS_1989",
SPHEROID ["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Lambert_Azimuthal_Equal_Area"],
PARAMETER["False_Easting",4321000.0],
PARAMETER["False_Northing",3210000.0],
PARAMETER["Central_Meridian",10.0],
PARAMETER["Latitude_Of_Origin",52.0],
UNIT["Meter",1.0]]
我需要将它们转换为ESRI ASCII格式的简单栅格,使用经度和纬度坐标,墨卡托式投影,单元格大小为0.1度(我希望自己解释得很好,因为我不会#39 ; t有足够的GIS技能,对不起)。我需要的是格式为.ASC
的栅格,其中栅格的每个值对应于大小为N x N
的单个单元格,其中N
以度为单位(例如0.1度),并且栅格坐标在经度/纬度。
我尝试在raster
中使用R
库,并按照projectRaster
函数的示例进行操作。但经过多次尝试使用多个参数后,我无法正确使用它。我想我没有使用正确的投影,基准或类似的参数。
这是我尝试过的。我在R中加载栅格,然后使用:
设置其投影>crs(r)<-"+proj=laea +lat_1=52 +lon_0=-10 +ellps=GRS80"
然后我定义输出投影,我尝试转换并保存:
>newproj <- "+proj=lonlat +lat_1=52 +lon_0=-10 +ellps=WGS84"
>pr2 <- projectRaster(r, crs=newproj, res=0.1)
>writeRaster(pr2, "newraster.asc", overwrite=TRUE)
没有错误消息,但未正确投影生成的栅格(国家/地区边界不匹配,国家/地区略有失真)。
感谢您的帮助!
答案 0 :(得分:4)
鉴于您提供的投影的描述,这似乎是错误的:
crs(r) <- "+proj=laea +lat_1=52 +lon_0=-10 +ellps=GRS80"
因为你没有包括虚假的北向和东向参数;和lat_1应该是lat_0。这可能会更好:
crs(r) <- "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m"
这看起来很奇怪:
newproj <- "+proj=lonlat +lat_1=52 +lon_0=-10 +ellps=WGS84"
怎么样
newproj <- "+proj=longlat +datum=WGS84"