Я работаю с шейп-файлами в R, которые мне нужно преобразовать из полигона в растровый. В то время как векторы выглядят безупречно при построении, когда они преобразуются в растровое растение, используя «растеризовать», они создают ошибочные горизонтальные линии. Вот пример задачи:Ошибка растеризации: преобразование многоугольника в растровое выражение создает горизонтальные линии
Вот общий пример кода, который я использую (жаль, что я не могу загрузить себя данные, как это патентованный):
spdf.dat <- readOGR("directory here", "layer here")
# Plot polygon
plot(spdf.dat, col = 'dimgrey', border = 'black')
# Extract boundaries
ext <- extent(spdf.dat)
# Set resolution for rasterization
res <- 1
# determine no. of columns from extents and resolution
yrow <- round(([email protected] - [email protected])/res)
xcol <- round(([email protected] - [email protected])/res)
# Rasterize base
rast.base <- raster(ext, yrow, xcol, crs = projection(spdf.dat))
# Rasterize substrate polygons
rast <- rasterize(spdf.dat, rast.base, field = 1, fun = 'min', progress='text')
plot(rast, col = 'dimgrey')
Означает ли это, что проблема связана с исходными данными или функцией растеризации? Кто-нибудь видел такую ошибку раньше? Благодарим вас за любой совет, который вы можете предоставить.
Я пробовал свой код с моими данными, и у него хорошее поведение. Ваш код выглядит хорошо для меня. может быть, проблема с вашими данными? Попробуйте использовать другой набор данных. – Bastien
Когда я смотрю на вашу фигуру, мне кажется, что проблематичные появляющиеся линии в растре расположены на одной и той же широте некоторых островов. Попробуйте удалить эти острова из своего набора данных. Если проблема исчезнет, вы поймете, что ваши данные являются проблемой и где в ваших данных проблема. – Bastien
Возможно, вы захотите попробовать пакет gdalUtils, который имеет функцию: 'gdal_rasterize' – Bastien