簡體   English   中英

如何刪除光柵磚名稱前面的“X”

[英]How to remove "X" in front of raster brick Names

我需要一些有關光柵磚名稱格式的幫助。 我有一塊有 16 層波浪高度的磚,每層都有一個自 1970 年以來的秒時間戳。我可以提取名稱並轉換為標准日期格式。 但是,當我嘗試將名稱重新插入 rasterbrick 時,會在每個日期戳之前放置一個“X”。 這阻止我在閃亮的應用程序中創建日期滑塊輸入,因為 max、min 和 value 參數必須是數字。

我發現一個舊帖子說這是不可能的。 為什么 R 在重命名柵格堆棧層時會添加“x”

我很好奇是否有人知道解決方法?

這是我下載和清理光柵的代碼。

library(terra)
url <- "http://thredds.cdip.ucsd.edu//thredds/fileServer/cdip/model/MOP_grids/CA_0.01_forecast.nc"

options(timeout = 10000)
data_set <- "wave_data.nc"
if (!file.exists(data_set)) {
  download.file(url, data_set, mode="wb")
}
waves <- rast(data_set, sub = "waveHs")
ROU <- ext(-121.0062, -118.7438, 33.10625, 34.90625)
wave_crop <- crop(waves, ROU)

remove_txt <- gsub("waveHs_waveTime.", "", names(waves)) |> 
  as.numeric() |> 
  lubridate::as_datetime()

library(raster)
wave <- brick(wave_crop)
names(wave) <- remove_txt

wave
#class      : RasterBrick 
#dimensions : 180, 226, 40680, 16  (nrow, ncol, ncell, nlayers)
#resolution : 0.009999997, 0.009999998  (x, y)
#extent     : -121.005, -118.745, 33.105, 34.905  (xmin, xmax, ymin, ymax)
#crs        : +proj=longlat +ellps=WGS84 +no_defs 
#source     : memory
#names      : X2021.11.07.19.00.00, X2021.11.08.01.00.00, X2021.11.08.07.00.00, X2021.11.08.13.00.00, X2021.11.08.19.00.00, X2021.11.09.01.00.00, X2021.11.09.07.00.00, X2021.11.09.13.00.00, X2021.11.09.19.00.00, X2021.11.10.01.00.00, X2021.11.10.07.00.00, X2021.11.10.13.00.00, X2021.11.10.19.00.00, X2021.11.11.01.00.00, X2021.11.11.07.00.00, ... 
#min values :           0.08262682,           0.08607960,           0.08421428,           0.07400891,           0.06429628,           0.05832646,           0.05505765,           0.04826499,           0.03828974,           0.03100377,           0.02817857,           0.03242879,           0.03779505,           0.03922490,           0.05875918, ... 
#max values :             2.788141,             3.086087,             3.117096,             3.096558,             2.907296,             2.608371,             2.439595,             2.297133,             2.184082,             2.494745,             2.174670,             2.003929,             2.195310,             2.608896,             2.702595, ... 

最簡單的方法是將名稱設置為 SpatRaster waves ,因為terra不強制 R 名稱有效性。

names(waves) <- remove_txt
waves
#class       : SpatRaster 
#dimensions  : 1000, 800, 16  (nrow, ncol, nlyr)
#resolution  : 0.009999997, 0.009999998  (x, y)
#extent      : -124.995, -116.995, 31.995, 41.995  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
#source      : wave_data.nc:waveHs 
#varname     : waveHs (significant wave height) 
#names       : 2021-~00:00, 2021-~00:00, 2021-~00:00, 2021-~00:00, 2021-~00:00, 2021-~00:00, ... 
#unit        :       meter,       meter,       meter,       meter,       meter,       meter, ... 

names(waves)
# [1] "2021-11-07 19:00:00" "2021-11-08 01:00:00" "2021-11-08 07:00:00"
# [4] "2021-11-08 13:00:00" "2021-11-08 19:00:00" "2021-11-09 01:00:00"
# [7] "2021-11-09 07:00:00" "2021-11-09 13:00:00" "2021-11-09 19:00:00"
#[10] "2021-11-10 01:00:00" "2021-11-10 07:00:00" "2021-11-10 13:00:00"
#[13] "2021-11-10 19:00:00" "2021-11-11 01:00:00" "2021-11-11 07:00:00"
#[16] "2021-11-11 13:00:00"

或者,您不能對remove_txt中的標簽使用sliderInput嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM