0

I have this shapefile, from where I took the first two columns (left and top) to acess another database and get values of 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:

I accessed the database and wrote a netCDF file (StackOverflow Question). I used the same 959 geo points.

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

However, when I plot with plot(RasterLayer) i get this:

The plot of the RasterLayer

Why the plot of the raster have this gaps, and why don't have the same shape as the shapefile plot?

Val
  • 6,585
  • 5
  • 22
  • 52

1 Answers1

0

I found a solution! I supposed that my explanation is not that technical, but it was the mental path I follow to find the solution.

I suspected that a raster should be an image with four sides. If my geographical location of interest is not a square or rectangle, when I import my netCDF file, this strange pattern occurs.

So, I thought to first create a raster with four sides, and so then write my data within this new raster.

First, I created a new raster with xmin, xmax, ymin and ymax attributes from the previus RasterLayer (the broken one).

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

Then, I took the data.frame containing my data:

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

...

I used the rasterize function:

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

And here is what I want:


Hope my struggle help someone out there.