Пробелы в RasterLayer с использованием R - PullRequest
0 голосов
/ 17 января 2020

У меня есть этот шейп-файл, откуда я взял первые два столбца (left и top) для доступа к другой базе данных и получения значений elevation.

Simple feature collection with 959 features and 5 fields
geometry type:  MULTIPOINT
dimension:      XY
bbox:           xmin: -50.49206 ymin: -15.00123 xmax: -41.99206 ymax: -2.501234
epsg (SRID):    NA
proj4string:    +proj=longlat +ellps=GRS80 +no_defs
# A tibble: 959 x 6
    left   top right bottom    id              geometry
   <dbl> <dbl> <dbl>  <dbl> <dbl>      <MULTIPOINT [°]>
 1 -48.0 -7.50 -47.7  -7.25   605 (-47.99206 -7.501234)
 2 -48.0 -7.75 -47.7  -7.50   606 (-47.99206 -7.751234)
 3 -48.0 -8.00 -47.7  -7.75   607 (-47.99206 -8.001234)
 4 -48.0 -8.25 -47.7  -8.00   608 (-47.99206 -8.251234)
 5 -48.0 -8.50 -47.7  -8.25   609 (-47.99206 -8.501234)
 6 -48.0 -8.75 -47.7  -8.50   610 (-47.99206 -8.751234)
 7 -48.0 -9.00 -47.7  -8.75   611 (-47.99206 -9.001234)
 8 -48.0 -9.25 -47.7  -9.00   612 (-47.99206 -9.251234)
 9 -48.0 -9.50 -47.7  -9.25   613 (-47.99206 -9.501234)
10 -48.0 -9.75 -47.7  -9.50   614 (-47.99206 -9.751234)
# ... with 949 more rows

Here the plot of the shapefile:

Я получил доступ к базе данных и написал файл netCDF ( Вопрос StackOverflow ). Я использовал те же 959 географических точек.

class      : RasterLayer 
dimensions : 51, 35, 1785  (nrow, ncol, ncell)
resolution : 0.25, 0.25  (x, y)
extent     : -50.61706, -41.86706, -15.12623, -2.376234  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
source     : D:/2019/Projetos/Dados_Xavier/Xavier/elev.nc 
names      : elev 
zvar       : elev

Однако, когда я строю график с помощью plot(RasterLayer), я получаю следующее:

The plot of the RasterLayer

Почему график растры имеют эти пробелы, и почему они не имеют такую ​​же форму, как график шейп-файла?

1 Ответ

0 голосов
/ 18 января 2020

Я нашел решение! Я предположил, что мое объяснение не настолько техническое, но это был ментальный путь, которым я следую, чтобы найти решение.

Я подозревал, что raster должно быть изображением с четырьмя сторонами. Если интересующее меня географическое местоположение не является квадратом или прямоугольником, то при импорте файла netCDF возникает эта странная картина.

Итак, я подумал сначала создать растр с четырьмя сторонами, а затем записать свои данные внутри этого нового растра.

Во-первых, я создал новые raster с xmin, xmax, ymin и ymax атрибутами из * * * * *. * RasterLayer (сломанный).

new_raster = raster(xmn = -51, xmx = -41, ymn = -15.5, ymx = -2, res = 0.25)

Затем я взял data.frame, содержащий мои данные:

data

         long        lat elevation
1   -47.99206  -7.501234 242.0362
2   -47.99206  -7.751234 200.7271
3   -47.99206  -8.001234 165.6918
4   -47.99206  -8.251234 271.2571
5   -47.99206  -8.501234 235.2896
6   -47.99206  -8.751234 271.5381
7   -47.99206  -9.001234 290.0054
8   -47.99206  -9.251234 218.8803
9   -47.99206  -9.501234 261.7539
10  -47.99206  -9.751234 318.0000

...

Я использовал функцию rasterize:

final_raster = rasterize(data[1:2], new_r, data[[3]])

И вот что я хочу:


Надеюсь, моя борьба поможет кому-то там.

...