如何将Sentinel-3 .nc文件转为.tiff并保留像素地理信息(R语言)
求助:Sentinel-3 NetCDF转GeoTIFF时保留像素地理信息的R方案
我最近在处理Sentinel-3的遥感数据时遇到了个头疼的问题:从ESA下载的.nc格式数据转成.tiff后,像素的地理信息(经纬度)全丢了,只剩单纯的像素坐标。之前看到有用户尝试用Kotlin解决这个问题但没成功,我更倾向于用R语言来找到解决方案。
我已经试过两种转换方法,虽然都能完成格式转换,但核心的地理信息始终保留不下来,具体尝试如下:
方法1:通过R调用gdal_translate
我尝试在R里调用Windows命令行的gdal_translate工具,代码如下:
data_source <- 'D:/user_1/01_test_data/S3A_SL_1_RBT____20180708T093240_20180708T093540_20180709T141944_0179_033_150_2880_LN2_O_NT_003.SEN3/F1_BT_in.nc' # .nc文件路径 data_output <- 'D:/user_1/01_test_data/S3A_SL_1_RBT____20180708T093240_20180708T093540_20180709T141944_0179_033_150_2880_LN2_O_NT_003.SEN3/test.tif' # 输出.tiff路径 # 拼接命令并执行 system(command = paste('gdal_translate -of GTiff -sds -a_srs epsg:4326', data_source, data_output))
方法2:使用raster包转换
我也试过用R的raster包直接处理,代码如下:
data_source <- 'D:/user_1/01_test_data/S3A_SL_1_RBT____20180708T093240_20180708T093540_20180709T141944_0179_033_150_2880_LN2_O_NT_003.SEN3/F1_BT_in.nc' data_output <- 'D:/user_1/01_test_data/S3A_SL_1_RBT____20180708T093240_20180708T093540_20180709T141944_0179_033_150_2880_LN2_O_NT_003.SEN3/test.tif' # 定义WGS84投影 epsg4326 <- "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" specific_band <- raster(data_source) crs(specific_band) <- epsg4326 writeRaster(specific_band, filename = data_output)
这两种方法都能生成.tiff文件,但像素对应的经纬度信息完全丢失,只有像素坐标可用。有没有能在R中实现、转换后完整保留像素地理信息的解决方案?万分感谢!
内容的提问来源于stack exchange,提问作者ExploreR
相关产品推荐
相关产品推荐

