NASA Logo
Ocean Color Science Software

ocssw V2022
find_variable.cpp
Go to the documentation of this file.
1 #include "find_variable.hpp"
2 
3 const std::unordered_set<std::string> non_data_names = {"l2_flags",
4  "latitude",
5  "Latitude",
6  "lat",
7  "Lat",
8  "longitude",
9  "Longitude",
10  "lon",
11  "Lon",
12  "solzen",
13  "solar_zenith_angle",
14  "solz",
15  "Solar Zenith Angle",
16  "csol_z",
17  "Center Solar Zenith Angle",
18  "center_solar_zenith_angle",
19  "satzen",
20  "senzen",
21  "sensor_zenith_angle",
22  "satellite_zenith_angle",
23  "satz",
24  "senz",
25  "Sensor Zenith Angle",
26  "Satellite Zenith Angle",
27  "senzen"};
28 
29 std::multimap<std::string, netCDF::NcVar> find_variables_geo_physical(const std::string &nc_path,
30  std::string &prod_list) {
31  netCDF::NcFile file_;
32  file_.open(nc_path, netCDF::NcFile::read);
33  if (file_.isNull())
34  throw std::runtime_error("--Error--: Could not open file " + nc_path);
35  std::multimap<std::string, netCDF::NcVar> res = find_all_variables(file_, non_data_names);
36  for (auto &var : res) {
37  std::string grp_name = var.second.getParentGroup().getName();
38  if(grp_name!="geophysical_data")
39  continue;
40  if (prod_list.empty())
41  prod_list += var.first;
42  else
43  prod_list += "," + var.first;
44  }
45  return res;
46 }
@ string
std::multimap< std::string, netCDF::NcVar > find_all_variables(T &nc_id)
std::multimap< std::string, netCDF::NcVar > find_variables_geo_physical(const std::string &nc_path, std::string &prod_list)
const std::unordered_set< std::string > non_data_names