Проблемы с чтением в TIF-файле в R - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь читать в Tif файлы в R, используя растр. Мне нужно сопоставить данные из tif-файла (координаты) с указанными c границами городов, которые у меня есть, как определено в другом шейп-файле.
Мой TIF-файл занимает около 7 МБ.

Проблема в том, что единственный способ узнать, как преобразовать эти tif-файлы в пригодный для использования формат, - это сначала преобразовать мой RasterLayer в фрейм данных. Однако, когда я пытаюсь это сделать, у фрейма данных по какой-то причине оказывается около 300 миллионов строк, тогда как у растрового слоя изначально было только 16 000. Это заставляет все останавливаться. Мне интересно, есть ли более простой способ конвертировать мой TIF-файл в читаемый формат в R, который я впоследствии смогу использовать в своей функции Over. Мой код ниже. Любая помощь будет оценена.

city_lights <- raster(tif_file)
city_lights_df <- as.data.frame(city_lights, xy = TRUE)
coordinates(city_lights_df)<- ~x +y
proj4string(city_lights_df) <- proj4string(city_boundaries_poly_obj)

city_lights_coords <- over(city_lights_df, city_boundaries_poly_obj)

1 Ответ

1 голос
/ 09 марта 2020

Я не на 100% уверен в вашем вопросе, но я предполагаю, что вы хотите вернуть значения из растра, где они охватываются полигоном границ вашего города? Если это так, попробуйте, если нет, предоставьте более подробную информацию:

city_lights <- raster(tif_file)
city_lights <- crop(city_lights, city_boundaries_poly_obj)
city_lights <- mask(city_lights, city_boundaries_poly_obj)
res <- rasterToPoints(city_lights)
...