Я немного новичок в R и особенно в работе с ГИС в R, поэтому я надеюсь, что объясню это правильно.
Я хочу получить функцию обрезки (x, y ...) из растрового пакета для слияния / наложения (не знаю, какое правильное выражение использовать) растровый файл с шейп-файлом.По сути, шейп-файл представляет собой сетку Швеции размером 5 × 5 км, а растр - это растровый растр Швеции.Используя функцию обрезки, я хочу получить результат, который для каждого квадрата 5x5 км из шейп-файла дает извлеченную из растрового файла информацию о типе землепользования в каждом квадрате.
Однако, когда я использую обрезкуи затем напишите .csv из того, что я обрезал 'crop (landuse, ekrut) "(см. код ниже), я в основном просто получаю ekrut (shapefile) в качестве выходного csv-файла, нет добавленных столбцов растра landuse, указывающего, какой квадрат имееткакой класс землепользования.
Извините, но я не могу поделиться фактическим шейп-файлом здесь, если это как-то изменится, данные о землепользовании можно скачать здесь: http://gpt.vic -metria.nu/data/land/NMD/NMD2018_basskikt_ogeneraliserad_Sverige_v1_0.zip
Вот что я пытался сделать до сих пор
library (raster)
library (rgdal)
library (sp)
это система координат / проекция для файла ГИС. Каждая координата.система имеет код epsg (http://spatialreference.org/).
sweref.def <- "+init=epsg:3006"
# read in shapefile
ekrut <- readOGR (dsn = "//storage-al.slu.se/student$/nilc0001/Desktop/Nina/Ekrut",
layer = "ekrut_5x5_flat",
p4s = sweref.def)
ekrut
# class : SpatialPolygonsDataFrame
# features : 19192
# extent : 266333, 921700, 6131565, 7675329 (xmin, xmax, ymin, ymax)
# coord. ref. : +init=epsg:3006 +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
# variables : 7
# names : AREA, PERIMETER, GGD_, GGD_ID, BK, Bk_num, BK_flat
# min values : 2.5e+07, 20000, 2, 0, 10A 0f, 012 77, 10A0f
# max values : 2.5e+07, 20000, 19208, 19230, 9J 9d, 329 48, 9J9d
#read in raster
landuse <- raster ("nmd2018bas_ogeneraliserad_v1_0.tif")
landuse
# class : RasterLayer
# dimensions : 157992, 71273, 11260563816 (nrow, ncol, ncell)
# resolution : 10, 10 (x, y)
# extent : 208450, 921180, 6091140, 7671060 (xmin, xmax, ymin, ymax)
# coord. ref. : +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
# data source : //storage- al.slu.se/student$/nilc0001/Desktop/Nina/landuse/nmd2018bas_ogeneraliserad_v1_0.tif
# names : nmd2018bas_ogeneraliserad_v1_0
# values : 0, 128 (min, max)
# attributes :
# ID COUNT Opacity Klass
# from: 0 5204803484 0
# to : 255 0 0
#first few rows of attribute table of landuse
levels (landuse)
# [[1]]
# ID COUNT Opacity Klass
# 1 0 5204803484 0
# 2 1 0 255
# 3 2 382320369 255 Öppen våtmark
# 4 3 258249590 255 Åkermark
# crop and write csv
landuse.ekrut <- crop (landuse, ekrut)
write.csv (landuse.ekrut,"landuse.ek.csv")
Как я уже говорил, когда я использую кадрирование и затем пишу .csv из того, что я обрезал, я в основном просто получаюt ekrut (shapefile) в качестве выходного CSV-файла, нет добавленных столбцов растра землепользования, указывающих, какой квадрат имеет какой класс землепользования.
Я хотел бы иметь CSV, который для каждого квадрата (есть19 191 из них), дает мне информацию о том, какой тип землепользования присутствует на этой площади.
Если есть лучший способ приблизиться к этому, пожалуйста, укажите.Надеюсь, я объяснил свое объяснение!
Спасибо.