[R-sig-Geo] Plotting x and y values using data from two separate netCDF files in R

Michael Sumner md@umner @end|ng |rom gm@||@com
Tue Mar 26 21:33:54 CET 2019


I would try for a single point:

x <- raster::brick(ncfname, varname = "cum_co2_emi-CanESM2")
y <- raster::brick(ncfname1, varname = "onedaymax")

pt <- cbind(30, -5)
to_plot <- cbind(raster::extract(x, pt), raster::extract(y, pt))

plot(to_plot)

Is that close?  You might be better off using raster::as.data.frame(x, xy =
TRUE, long = TRUE) if you want all locations at their actual centre.

See if the times of the 3rd axis are valid (and the same) in getZ(x) and
getZ(y).

There's rarely a need to use ncdf4 directly, though that's important
sometimes, more so for grids that raster's regular-affine referencing model
doesn't support.

cheers, Mike



On Wed, 27 Mar 2019 at 05:29 rain1290--- via R-sig-Geo <
r-sig-geo using r-project.org> wrote:

> Hi there,
> I am currently trying to plot precipitation data (y-axis values) with
> cumulative emissions data (x-axis) using R. Both of these data are found on
> two separate netCDF files that I have already read into R. Ultimately, What
> I would like to do is plot precipitation as a function of cumulative
> emissions for a selected location (as shown below in the following code). I
> have, so far, used the following code (with "#" to highlight each step):
>   library(raster)
>     library(ncdf4)
>     library(maps)
>     library(maptools)
>     library(rasterVis)
>     library(ggplot2)
>     library(rgdal)
>     library(sp)    #Geting cumulative emissions data for x-axis
> ncfname<-"cumulative_emissions_1pctCO2.nc"
>     Model1<-nc_open(ncfname)
>     print(Model1)
>     get<-ncvar_get(Model1, "cum_co2_emi-CanESM2") #units of terratones
> of
>     carbon (TtC) for x-axis (140 values)
>     print(get)
>     Year<-ncvar_get(Model1, "time") #140 years
>  #Getting Model data for extreme precipitation (units of millimeters/day)
> for y-axis       ncfname1<-"MaxPrecCCCMACanESM21pctCO2.nc"
>     Model2<-nc_open(ncfname1)
>     print(Model2)
>     get1<-ncvar_get(Model2, "onedaymax") #units of millimeters/day
>     print(get1)
>     #Reading in latitude, longitude and time from this file:
>         latitude<-ncvar_get(Model2, "lat") #64 degrees latitude
>     longitude<-ncvar_get(Model2, "lon") #128 degrees longitude
>     Year1<-ncvar_get(Model2, "Year") #140 years
>     #Plotting attempt        randompointlon<-30 #selecting a longitude
>     randompointlat<--5 #selecting a latitude
>     Hope<-extract(r_brick,
>     SpatialPoints(cbind(randompointlon,randompointlat)),method='simple')
>     df<-data.frame(cumulativeemissions=seq(from=1, to=140, by=1),
>     Precipitation=t(Hope))
>     ggplot(data=df, aes(x=get, y=Precipitation,
>     group=1))+geom_line()+ggtitle("One-day maximum precipitation
> (mm/day)
>     for random location for CanESM2 1pctCO2 as a function of cumulative
>     emissions")
> print(Model1) yields the following (I read in variable #2 for now):
> File cumulative_emissions_1pctCO2.nc (NC_FORMAT_NETCDF4):
> 14 variables (excluding dimension variables):
>                 float cum_co2_emi-BNU-ESM[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for BNU-ESM
>             units: Tt C
>         float cum_co2_emi-CanESM2[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for CanESM2
>             units: Tt C
>         float cum_co2_emi-CESM1-BGC[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for CESM1-BGC
>             units: Tt C
>         float cum_co2_emi-HadGEM2-ES[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for HadGEM2-ES
>             units: Tt C
>         float cum_co2_emi-inmcm4[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for inmcm4
>             units: Tt C
>         float cum_co2_emi-IPSL-CM5A-LR[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for IPSL-CM5A-LR
>             units: Tt C
>         float cum_co2_emi-IPSL-CM5A-MR[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for IPSL-CM5A-MR
>             units: Tt C
>         float cum_co2_emi-IPSL-CM5B-LR[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for IPSL-CM5B-LR
>             units: Tt C
>         float cum_co2_emi-MIROC-ESM[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for MIROC-ESM
>             units: Tt C
>         float cum_co2_emi-MPI-ESM-LR[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for MPI-ESM-LR
>             units: Tt C
>         float cum_co2_emi-MPI-ESM-MR[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for MPI-ESM-MR
>             units: Tt C
>         float cum_co2_emi-NorESM1-ME[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for NorESM1-ME
>             units: Tt C
>         float cum_co2_emi-GFDL-ESM2G[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for GFDL-ESM2G
>             units: Tt C
>         float cum_co2_emi-GFDL-ESM2M[time]   (Contiguous storage)
>             long_name: Cumulative carbon emissions for GFDL-ESM2M
>             units: Tt C     1 dimensions:
>         time  Size:140
>             units: years since 0-1-1 0:0:0
>             long_name: time
>             standard_name: time
>             calender: noleap   4 global attributes:
>         description: Cumulative carbon emissions for the 1pctCO2 scenario
> from the CMIP5 dataset.
>         history: Created Fri Jul 21 14:50:39 2017
>         source: CMIP5 archieve
>
> print(Model2) yields the following:File MaxPrecCCCMACanESM21pctCO2.nc
> (NC_FORMAT_NETCDF4):     3 variables (excluding dimension variables):
>         double onedaymax[lon,lat,time]   (Contiguous storage)
>             units: mm/day
>         double fivedaymax[lon,lat,time]   (Contiguous storage)
>             units: mm/day
>         short Year[time]   (Contiguous storage)       3 dimensions:
>         time  Size:140
>         lat  Size:64
>             units: degree North
>         lon  Size:128
>             units: degree East      3 global attributes:
>         description: Annual global maximum precipitation from the CanESM2
> 1pctCO2 scenario
>         history: Created Mon Jun  4 11:24:02 2018
>         contact: rain1290 using aim.com
> So, in general, this is what I am trying to achieve, but I am not sure if
> what I am doing in the ggplot function is the right approach for this.
> Any assistance with this would be greatly appreciated!
> Thanks,
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
-- 
Dr. Michael Sumner
Software and Database Engineer
Australian Antarctic Division
203 Channel Highway
Kingston Tasmania 7050 Australia

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list