Бештар

Стакерҳоро бо дараҷа ва ҳалли гуногун дар ҳалқа бо R бастаи растр


Мехостам расторҳоро бо бастаи R "растр" ҳамвор кунам. Қабатҳо дар формати ascii мебошанд. Ман мехоҳам, ки онҳоро ҳамон андоза зироат кунам ва онҳоро ба як қатор ҳал кунам. Рамзи ман қабатҳои растриро бо арзишҳои холӣ медиҳад.

# Қабатҳо бояд дараҷа ва дурнамои шабеҳ дошта бошанд. Мо аввал ҳамаи онҳоро ба ҳамон дараҷа кишт мекунем. # Файлҳои дар феҳристи корӣ мавҷудбударо, ки дорои * .asc raster_data <- list.files (pattern = '*. Asc', full.names = TRUE) # хонед, дараҷаи дилхоҳ (хурдтарин растр) e <- дараҷа (-12, 112, 23, 72) # қабати шаблонро бо дараҷа ва ҳалли дилхоҳ ба даст оред. Табдил додани қабати қолаби ascii ба формати растрии d <- raster ("WC_BIO1.asc", ext = e, crs = "+ projection = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0", ncol = 15120 , nrow = 6000) w <- writeRaster (d, "WC_BIO1_template.grd", format = "raster") # қабатҳои ascii -ро бор кунед, ба формати растрӣ бо андозаи ва қарори аз қабати шаблон гирифташуда барои (i in 1: length (raster_data) гузаред )) {r <- raster (raster_data [i], crs = "+ projec = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0") rc <- зироат (r, e) rp <- projectRaster (аз = rc, ба = w, crs = "+ projekt = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0", номи файл = file.path ("./crop", raster_data [i ]), method = "bilinear", format = "raster", overwrite = TRUE) rw <- writeRaster (rp, filename = file.path ("./crop", raster_data [i]), crs = "+ proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0 ", рӯи нависед = TRUE, format =" raster ", na.value = -9999)}

Инҳоянд чанд ишора. Бе донистани маълумоти бештар дар бораи маълумоти шумо ҷавоб додан душвор аст. Лутфан натиҷаи зеринро ба мо нишон диҳед:

растр (raster_data [1])
  • Шумо далелҳоро барастрфунксияе, ки ҳангоми эҷоди объект аз файл сарфи назар карда мешавад. Шумо бояд истифода набаредзироатдар ин қабат. Албатта не пеш шумо маълумотро ба lon / lat пешкаш мекунед.

  • Ба шумо ҳеҷ гоҳ projectRaster AND resample лозим нест. Агар қабатҳои шумо дар ҳақиқат истифодаи lon / lat бошанднамунаё, агар имконпазир бошад, танҳозироатва(dis) маҷмӯӣ.

  • Таассуроти ман ин аст, ки онҳо лон / лат нестанд. Ин метавонад мушкилот ва сабаби холӣ будани қабатҳои шумо бошад. Дар ин ҳолат, шумо бояд CRS-и ҳозираро ба онҳо пеш аз истифодаи projectRaster таъин кунед. Дар projectRaster далели crs -ро истифода набаред (он ба ҳар ҳол сарфи назар карда мешавад, зеро CRS аз w истифода мешавад).

  • WriteRaster -ро истифода набаред, зеро шумо аллакай файлро бо projectRaster ҳифз мекунед (ё метавонист ин корро бо намуна иҷро кунад). Ҳамчунин writeRaster далелҳои crs ва na.value надорад, бинобар ин, ба инобат гирифта намешаванд.

Ин аст коди собит:

raster_data <- list.files (pattern = '. asc $', full.names = TRUE) w <- raster ("WC_BIO1.asc", crs = "+ projection = longlat + datum = WGS84 + ellps = WGS84" ) барои (i in 1: length (raster_data)) {r <- raster (raster_data [i], crs = "???????") rp <- projectRaster (from = rc, to = w, номи файл = file.path ("./crop", raster_data [i]), method = "bilinear", format = "raster", overwrite = TRUE)}