0

details of the raw data (Mnth.nc)

netcdf Mnth {
dimensions:
        time = UNLIMITED ; // (480 currently)
        bnds = 2 ;
        longitude = 25 ;
        latitude = 33 ;
variables:
        double time(time) ;
                time:standard_name = "time" ;
                time:long_name = "verification time generated by wgrib2 function verftime()" ;
                time:bounds = "time_bnds" ;
                time:units = "seconds since 1970-01-01 00:00:00.0 0:00" ;
                time:calendar = "standard" ;
                time:axis = "T" ;
        double time_bnds(time, bnds) ;
        double longitude(longitude) ;
                longitude:standard_name = "longitude" ;
                longitude:long_name = "longitude" ;
                longitude:units = "degrees_east" ;
                longitude:axis = "X" ;
        double latitude(latitude) ;
                latitude:standard_name = "latitude" ;
                latitude:long_name = "latitude" ;
                latitude:units = "degrees_north" ;
                latitude:axis = "Y" ;
        float APCP_sfc(time, latitude, longitude) ;
                APCP_sfc:long_name = "Total Precipitation" ;
                APCP_sfc:units = "kg/m^2" ;
                APCP_sfc:_FillValue = 9.999e+20f ;
                APCP_sfc:missing_value = 9.999e+20f ;
                APCP_sfc:cell_methods = "time: sum" ;
                APCP_sfc:short_name = "APCP_surface" ;
                APCP_sfc:level = "surface" ;
}

Detail information of the raw data (Mnth.nc)

File format : NetCDF4 classic
    -1 : Institut Source   T Steptype Levels Num    Points Num Dtype : Parameter ID
     1 : unknown  unknown  v instant       1   1       825   1  F32  : -1
   Grid coordinates :
     1 : lonlat                   : points=825 (25x33)
                        longitude : 87 to 89.88 by 0.12 degrees_east
                         latitude : 25.08 to 28.92 by 0.12 degrees_north
   Vertical coordinates :
     1 : surface                  : levels=1
   Time coordinate :  480 steps
     RefTime =  1970-01-01 00:00:00  Units = seconds  Calendar = standard  Bounds = true
  YYYY-MM-DD hh:mm:ss  YYYY-MM-DD hh:mm:ss  YYYY-MM-DD hh:mm:ss  YYYY-MM-DD hh:mm:ss
  1980-01-16 12:30:00  1980-02-15 12:30:00  1980-03-16 12:30:00  1980-04-16 00:30:00
  1980-05-16 12:30:00  1980-06-16 00:30:00  1980-07-16 12:30:00  1980-08-16 12:30:00
  1980-09-16 00:30:00  1980-10-16 12:30:00  1980-11-16 00:30:00  1980-12-16 12:30:00
  1981-01-16 12:30:00  1981-02-15 00:30:00  1981-03-16 12:30:00  1981-04-16 00:30:00
  1981-05-16 12:30:00  1981-06-16 00:30:00  1981-07-16 12:30:00  1981-08-16 12:30:00
  1981-09-16 00:30:00  1981-10-16 12:30:00  1981-11-16 00:30:00  1981-12-16 12:30:00
  1982-01-16 12:30:00  1982-02-15 00:30:00  1982-03-16 12:30:00  1982-04-16 00:30:00
  1982-05-16 12:30:00  1982-06-16 00:30:00  1982-07-16 12:30:00  1982-08-16 12:30:00
  1982-09-16 00:30:00  1982-10-16 12:30:00  1982-11-16 00:30:00  1982-12-16 12:30:00
  1983-01-16 12:30:00  1983-02-15 00:30:00  1983-03-16 12:30:00  1983-04-16 00:30:00
  1983-05-16 12:30:00  1983-06-16 00:30:00  1983-07-16 12:30:00  1983-08-16 12:30:00
  1983-09-16 00:30:00  1983-10-16 12:30:00  1983-11-16 00:30:00  1983-12-16 12:30:00
  1984-01-16 12:30:00  1984-02-15 12:30:00  1984-03-16 12:30:00  1984-04-16 00:30:00
  1984-05-16 12:30:00  1984-06-16 00:30:00  1984-07-16 12:30:00  1984-08-16 12:30:00
  1984-09-16 00:30:00  1984-10-16 12:30:00  1984-11-16 00:30:00  1984-12-16 12:30:00
   ................................................................................
   ............................
  2016-01-16 12:30:00  2016-02-15 12:30:00  2016-03-16 12:30:00  2016-04-16 00:30:00
  2016-05-16 12:30:00  2016-06-16 00:30:00  2016-07-16 12:30:00  2016-08-16 12:30:00
  2016-09-16 00:30:00  2016-10-16 12:30:00  2016-11-16 00:30:00  2016-12-16 12:30:00
  2017-01-16 12:30:00  2017-02-15 00:30:00  2017-03-16 12:30:00  2017-04-16 00:30:00
  2017-05-16 12:30:00  2017-06-16 00:30:00  2017-07-16 12:30:00  2017-08-16 12:30:00
  2017-09-16 00:30:00  2017-10-16 12:30:00  2017-11-16 00:30:00  2017-12-16 12:30:00
  2018-01-16 12:30:00  2018-02-15 00:30:00  2018-03-16 12:30:00  2018-04-16 00:30:00
  2018-05-16 12:30:00  2018-06-16 00:30:00  2018-07-16 12:30:00  2018-08-16 12:30:00
  2018-09-16 00:30:00  2018-10-16 12:30:00  2018-11-16 00:30:00  2018-12-16 12:30:00
  2019-01-16 12:30:00  2019-02-15 00:30:00  2019-03-16 12:30:00  2019-04-16 00:30:00
  2019-05-16 12:30:00  2019-06-16 00:30:00  2019-07-16 12:30:00  2019-08-16 12:30:00
  2019-09-16 00:30:00  2019-10-16 12:30:00  2019-11-16 00:30:00  2019-12-16 12:30:00
  2020-01-16 12:30:00  2020-02-15 12:30:00  2020-03-16 12:30:00  2020-04-16 00:30:00
  2020-05-16 12:30:00  2020-06-16 00:30:00  2020-07-16 12:30:00  2020-08-16 12:30:00
  2020-09-16 00:30:00  2020-10-16 12:30:00  2020-11-16 00:30:00  2020-12-16 12:30:00
cdo    sinfo: Processed 1 variable over 480 timesteps [0.50s 30MB].

I extracted monthly rainfall values from the Mnth.nc file for a location (lon: 88.44; lat: 27.12)using the following command

cdo remapnn,lon=88.44-lat=27.12 Mnth.nc Mnth1.nc
cdo outputtab,year, month, value Mnth1.nc > Mnth.csv

The output is as follows ()

Year    month   Value
1980    1   31.74219
1980    2   54.60938
1980    3   66.94531
1980    4   149.4062
1980    5   580.7227
1980    6   690.1328
1980    7   1146.305
1980    8   535.8164
1980    9   486.4688
1980    10  119.5391
1980    11  82.10547
1980    12  13.95703

Then I extracted the rainfall values from the same data (Mnth.nc) for the same location (lon: 88.44; lat: 27.12) using the features of the multidimensional toolbox provided in ArcGIS. The result is as follows-

year    month   Value
1980    1   38.8125
1980    2   58.6542969
1980    3   71.7382813
1980    4   148.6367188
1980    5   564.7070313
1980    6   653.0390625
1980    7   1026.832031
1980    8   501.3164063
1980    9   458.5429688
1980    10  113.078125
1980    11  74.0976563
1980    12  24.2265625

Why I'm getting different results in two different software for the same location and for the same variable? Any help will highly be appreciated.

Thanks in advance.

Soumik Das
  • 9
  • 2
  • 5

2 Answers2

0

The question is perhaps misleading, in that you are not "extracting" the data in both cases. Instead you are interpolating it. The method used by CDO is nearest neighbour. arcGIS is probably simply using a different method, so you should get different results. They should give slightly different results.

The results look very similar, so both are almost certainly working as advertised.

Robert Wilson
  • 3,192
  • 11
  • 19
0

I think I ended up in the same issues. I used CDO to extract a point and also used ArcGIS for cross checking. I found out that the values were different. Just to be sure, I recorded the location extent of one particular cell and tried extracting values for different locations within the cell boundary extent. CDO seemed to have been giving the same results as expected because it uses nearest neighbour resampling method. Then I tried the same with ArcGIS. Interestingly, in my case, I found out that ArcGIS also gave me same results sometimes within the same cell boundary extent and sometimes different. I checked the values by also using 'Panoply' and I realised that CDO gave accurate results, while ArcGIS was sometimes giving offset results,i.e., it was giving the values of the nearby cells. This was confirmed by cross-checking with Panoply. As @Robert Wilson mentioned that ArcGIS must be using different resampling method, I figured out in the results section after using the tool 'Netcdf to table view' that it also uses Nearest neighbour method. This is not an answer to your question, but just something I found.