NetCDF ファイル (例: https://data.ceda.ac.uk/neodc/esacci/lakes/data/lake_products/L3S/v1.0/2019グローバル ドメイン) があり、シェープファイルに基づいてデータを抽出したい境界 (この場合は湖 - https://www.sciencebase.gov/catalog/item/530f8a0ee4b0e7e46bd300dd ) を作成し、クリップされたデータを NetCDF ファイルとして保存しますが、クリップされたファイル内のすべての元のメタデータと変数名を保持します。これは私がこれまでやってきたことです
library(rgdal)
library(sf)
library(ncdf4)
library(terra)
#Read in the shapefile of Lake
Lake_shape <- readOGR("C:/Users/CEDA/hydro_p_LakeA/hydro_p_A.shp")
# Reading the netcdf file using Terra Package function rast
test <- rast("ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20190705-fv1.0.nc")
# List of some of variables names for orginal dataset
head(names(test))
[1] "water_surface_height_above_reference_datum" "water_surface_height_uncertainty" "lake_surface_water_extent"
[4] "lake_surface_water_extent_uncertainty" "lake_surface_water_temperature" "lswt_uncertainty"
#Clipping data to smaller Lake domain using the crop function in Terra Package
test3 <- crop(test, Lake_shape)
#Listing the some variables names for clipped data
head(names(test3))
[1] "water_surface_height_above_reference_datum" "water_surface_height_uncertainty" "lake_surface_water_extent"
[4] "lake_surface_water_extent_uncertainty" "lake_surface_water_temperature" "lswt_uncertainty"
# Writing the crop dataset as netcdf or Raster Layer using the WriteCDF function
filepath<-"Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0"
fname <- paste0( "C:/Users/CEDA/",filepath,".nc")
rnc <- writeCDF(test3, filename =fname, overwrite=T)”
クリップされた netCDF ファイルを読み込むときの主な問題は、元の NetCDF のデータ変数の名前を保持できないようです。writeCDF 関数を使用してクリップされたデータセットを新しい netCDF として保存すると、それらはすべて自動的に名前が変更されます。
#Reading in the new clipped file
LakeA<-rast("Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0.nc")
> head(names(LakeA))
[1] "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_1" "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_2"
[3] "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_3" "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_4"
[5] "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_5" "Lake_A_ESACCI-LAKES-L3S-LK_PRODUCTS-MERGED-20020501-fv1.0_6"
Rでより小さいドメイン/シェープファイルにクリッピングしてからNetCDFとして保存するときに、元のNetCDFデータセットからすべてのメタデータ変数を複製/コピーすることは可能ですか? Rでこれを行う方法に関するガイダンスは本当にありがたいです。(NetCDF と R はすべて私にとって新しいものなので、何が欠けているのか、これを分類するための深い知識があるのか わかりません)。