Skip to contents

cate = c("aircraft-pfp",
         "aircraft-insitu",
         "aircraft-flask",
         "surface-insitu",
         "surface-flask", 
         "surface-pfp",   
         "tower-insitu",  
         "aircore",       
         "shipboard-insitu",
         "shipboard-flask") 

obs <- "Z:/torf/obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08/data/nc/"
index <- obs_summary(obs = obs, 
                     categories = cate)
#> Number of files of index: 429
#>               sector     N
#>               <char> <int>
#>  1:     aircraft-pfp    40
#>  2:  aircraft-insitu    15
#>  3:    surface-flask   106
#>  4:   surface-insitu   174
#>  5:   aircraft-flask     4
#>  6:          aircore     1
#>  7:      surface-pfp    33
#>  8:     tower-insitu    51
#>  9:  shipboard-flask     4
#> 10: shipboard-insitu     1
#> 11:    Total sectors   429
#> Detected 190 files with agl
#> Detected 239 files without agl

Now we read the shipboard-insitu using the function obs_read_nc. solar_time is included for surface, so we TRUE that argument.

datasetid <- "shipboard-insitu"
df <- obs_read_nc(index = index,
                  categories = datasetid,
                  solar_time = TRUE,
                  verbose = TRUE)
#> Searching shipboard-insitu...
#> 1: ch4_rvrb_shipboard-insitu_1_allvalid.nc

Now we check the data

df
#>         year month   day  hour minute second       time start_time
#>        <int> <int> <int> <int>  <int>  <int>      <int>      <int>
#>     1:  2019     3     2     1     19     37 1551489577 1551489577
#>     2:  2019     3     2     1     20      3 1551489603 1551489603
#>     3:  2019     3     2     1     21     38 1551489698 1551489698
#>     4:  2019     3     2     1     49      9 1551491349 1551491349
#>     5:  2019     3     2     2      3      7 1551492187 1551492187
#>    ---                                                            
#> 73230:  2019     3    30    16     20     21 1553962821 1553962821
#> 73231:  2019     3    30    16     24     23 1553963063 1553963063
#> 73232:  2019     3    30    16     24     57 1553963097 1553963097
#> 73233:  2019     3    30    16     25     58 1553963158 1553963158
#> 73234:  2019     3    30    16     26     24 1553963184 1553963184
#>        midpoint_time             datetime time_decimal        value latitude
#>                <int>               <char>        <num>        <num>    <num>
#>     1:    1551489577 2019-03-02T01:19:37Z     2019.165 2.076981e-06  32.8521
#>     2:    1551489603 2019-03-02T01:20:03Z     2019.165 2.077718e-06  32.8521
#>     3:    1551489698 2019-03-02T01:21:38Z     2019.165 2.077695e-06  32.8521
#>     4:    1551491349 2019-03-02T01:49:09Z     2019.165 2.071150e-06  32.8521
#>     5:    1551492187 2019-03-02T02:03:07Z     2019.165 2.076558e-06  32.8522
#>    ---                                                                      
#> 73230:    1553962821 2019-03-30T16:20:21Z     2019.243 1.950464e-06  32.6589
#> 73231:    1553963063 2019-03-30T16:24:23Z     2019.243 1.949703e-06  32.6660
#> 73232:    1553963097 2019-03-30T16:24:57Z     2019.243 1.949468e-06  32.6669
#> 73233:    1553963158 2019-03-30T16:25:58Z     2019.243 1.949421e-06  32.6686
#> 73234:    1553963184 2019-03-30T16:26:24Z     2019.243 1.948835e-06  32.6694
#>        longitude altitude elevation intake_height obs_flag obspack_num
#>            <num>    <num>     <num>         <num>    <int>       <int>
#>     1:  -79.9457       15         0            15        1     1844069
#>     2:  -79.9457       15         0            15        1     1844070
#>     3:  -79.9457       15         0            15        1     1844071
#>     4:  -79.9457       15         0            15        1     1844072
#>     5:  -79.9457       15         0            15        1     1844073
#>    ---                                                                
#> 73230:  -79.6765       15         0            15        1     1917298
#> 73231:  -79.6907       15         0            15        1     1917299
#> 73232:  -79.6925       15         0            15        1     1917300
#> 73233:  -79.6961       15         0            15        1     1917301
#> 73234:  -79.6978       15         0            15        1     1917302
#>                                                                                       obspack_id
#>                                                                                           <char>
#>     1: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1844069
#>     2: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1844070
#>     3: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1844071
#>     4: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1844072
#>     5: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1844073
#>    ---                                                                                          
#> 73230: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1917298
#> 73231: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1917299
#> 73232: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1917300
#> 73233: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1917301
#> 73234: obspack_ch4_1_GLOBALVIEWplus_v5.1_2023-03-08~ch4_rvrb_shipboard-insitu_1_allvalid~1917302
#>        unique_sample_location_num year_st month_st day_st hour_st minute_st
#>                             <int>   <int>    <int>  <int>   <int>     <int>
#>     1:                   46806290    2019        3      1      19        47
#>     2:                   46806291    2019        3      1      19        47
#>     3:                   46806292    2019        3      1      19        49
#>     4:                   46806293    2019        3      1      20        16
#>     5:                   44831881    2019        3      1      20        30
#>    ---                                                                     
#> 73230:                   46806283    2019        3     30      10        56
#> 73231:                   46806284    2019        3     30      11         0
#> 73232:                   46806285    2019        3     30      11         1
#> 73233:                   46806286    2019        3     30      11         2
#> 73234:                   46806287    2019        3     30      11         2
#>        second_st          scale site_elevation_unit  dataset_project
#>            <int>         <char>              <char>           <char>
#>     1:        18 WMO CH4 X2004A                masl shipboard-insitu
#>     2:        44 WMO CH4 X2004A                masl shipboard-insitu
#>     3:        19 WMO CH4 X2004A                masl shipboard-insitu
#>     4:        50 WMO CH4 X2004A                masl shipboard-insitu
#>     5:        48 WMO CH4 X2004A                masl shipboard-insitu
#>    ---                                                              
#> 73230:        57 WMO CH4 X2004A                masl shipboard-insitu
#> 73231:        55 WMO CH4 X2004A                masl shipboard-insitu
#> 73232:        29 WMO CH4 X2004A                masl shipboard-insitu
#> 73233:        29 WMO CH4 X2004A                masl shipboard-insitu
#> 73234:        55 WMO CH4 X2004A                masl shipboard-insitu
#>        dataset_selection_tag     site_name site_elevation site_latitude
#>                       <char>        <char>          <num>         <num>
#>     1:              allvalid R/V Ron Brown              0        -1e+34
#>     2:              allvalid R/V Ron Brown              0        -1e+34
#>     3:              allvalid R/V Ron Brown              0        -1e+34
#>     4:              allvalid R/V Ron Brown              0        -1e+34
#>     5:              allvalid R/V Ron Brown              0        -1e+34
#>    ---                                                                 
#> 73230:              allvalid R/V Ron Brown              0        -1e+34
#> 73231:              allvalid R/V Ron Brown              0        -1e+34
#> 73232:              allvalid R/V Ron Brown              0        -1e+34
#> 73233:              allvalid R/V Ron Brown              0        -1e+34
#> 73234:              allvalid R/V Ron Brown              0        -1e+34
#>        site_longitude site_code lab_1_abbr dataset_calibration_scale
#>                 <num>    <char>     <char>                    <char>
#>     1:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>     2:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>     3:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>     4:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>     5:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>    ---                                                              
#> 73230:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#> 73231:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#> 73232:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#> 73233:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#> 73234:         -1e+34      RVRB       NOAA            WMO CH4 X2004A
#>        altitude_final type_altitude
#>                 <num>        <lgcl>
#>     1:             15            NA
#>     2:             15            NA
#>     3:             15            NA
#>     4:             15            NA
#>     5:             15            NA
#>    ---                             
#> 73230:             15            NA
#> 73231:             15            NA
#> 73232:             15            NA
#> 73233:             15            NA
#> 73234:             15            NA

Now we can process the data. We first filter for observations within our spatial domain:

Checks and definitions

north <- 80
south <- 10
west <- -170
east <- -50
max_altitude <- 8000
yy <- 2020
evening <- 14

We check altitude, intake_height, altitude_final and elevation. altitude_final is a column from intake_height, added to match column from obs_read text files.

df[, c("altitude", "altitude_final", "intake_height", "elevation",
       "dataset_selection_tag",
              "site_name")]
#>        altitude altitude_final intake_height elevation dataset_selection_tag
#>           <num>          <num>         <num>     <num>                <char>
#>     1:       15             15            15         0              allvalid
#>     2:       15             15            15         0              allvalid
#>     3:       15             15            15         0              allvalid
#>     4:       15             15            15         0              allvalid
#>     5:       15             15            15         0              allvalid
#>    ---                                                                      
#> 73230:       15             15            15         0              allvalid
#> 73231:       15             15            15         0              allvalid
#> 73232:       15             15            15         0              allvalid
#> 73233:       15             15            15         0              allvalid
#> 73234:       15             15            15         0              allvalid
#>            site_name
#>               <char>
#>     1: R/V Ron Brown
#>     2: R/V Ron Brown
#>     3: R/V Ron Brown
#>     4: R/V Ron Brown
#>     5: R/V Ron Brown
#>    ---              
#> 73230: R/V Ron Brown
#> 73231: R/V Ron Brown
#> 73232: R/V Ron Brown
#> 73233: R/V Ron Brown
#> 73234: R/V Ron Brown

The temporal range of data is

range(df$year)
#> [1] 2019 2019

We also check for dimensions of data

dim(df)
#> [1] 73234    40

Plot

Finally, we just plot some data, run it locally

obs_plot(df4, time = "timeUTC", yfactor = 1e9)
#> Found the following sites: 
#> [1] RVRB
#> Plotting the following sites: 
#> [1] RVRB
#> png 
#>   2
Time series
Time series
library(sf)
dx <- df[, 
    lapply(.SD, mean),
    .SDcols = "value",
    by = .(latitude, longitude)]
x <- st_as_sf(dx, coords = c("longitude", "latitude"), crs = 4326)
plot(x["value"], axes = T, reset = F)
maps::map(add = T)
Map
Map