4 #ifndef ERF_STATIONSAMPLER_H_
5 #define ERF_STATIONSAMPLER_H_
11 #include <AMReX_BoxArray.H>
12 #include <AMReX_REAL.H>
13 #include <AMReX_Vector.H>
107 for (
int n = 0; n < 4; ++n) {
108 if (
w[n] >
amrex::Real(0.0) && std::isfinite(v[n]) && v[n] != missing_value) {
113 return (wsum >
amrex::Real(0.0)) ? sum / wsum : missing_value;
176 amrex::Vector<StationVar>
vars;
177 amrex::Vector<StationLoc>
locs;
189 for (
const auto& v :
vars) {
if (!v.is_2d) {
return true; } }
254 [[nodiscard]]
bool stencilsValidFor (
const amrex::Vector<amrex::BoxArray>& ba,
255 int finest_level)
const;
292 std::string
m_dir =
"Output_Stations";
std::string name
Definition: ERF_Plotfile2DCatalog.cpp:116
Real w
Definition: ERF_Plotfile2DInterpolator.cpp:23
amrex::Real Real
Definition: ERF_ShocInterface.H:19
StationEarthWind station_earth_wind_from_name(const std::string &name)
Definition: ERF_StationSampler.H:61
StationEarthWind
Definition: ERF_StationSampler.H:58
amrex::Real station_bilinear_skip_missing(amrex::Real v00, amrex::Real v10, amrex::Real v01, amrex::Real v11, amrex::Real wx, amrex::Real wy, amrex::Real missing_value)
Definition: ERF_StationSampler.H:95
Definition: ERF_StationSampler.H:195
StationSampler(const std::string &pp_prefix)
Definition: ERF_StationSampler.cpp:223
bool m_write_timestamp
Definition: ERF_StationSampler.H:289
bool m_levels_reported
Definition: ERF_StationSampler.H:288
int m_ncolumns
Definition: ERF_StationSampler.H:273
bool m_is_restart
Definition: ERF_StationSampler.H:286
amrex::Vector< Station > m_stations
Definition: ERF_StationSampler.H:272
std::string columnSignature(const Station &station) const
Definition: ERF_StationSampler.cpp:406
void buildColumns()
Definition: ERF_StationSampler.cpp:359
amrex::Vector< Station > & stations()
Definition: ERF_StationSampler.H:203
void setRestart(bool is_restart)
Definition: ERF_StationSampler.H:220
amrex::Vector< amrex::BoxArray > m_stencil_grids
Definition: ERF_StationSampler.H:284
int m_buffer_steps
Definition: ERF_StationSampler.H:274
bool m_low_height_warned
Definition: ERF_StationSampler.H:287
amrex::Vector< amrex::Real > m_epoch_times
Definition: ERF_StationSampler.H:279
void writeHeader(const Station &station, std::ostream &os) const
Definition: ERF_StationSampler.cpp:444
amrex::Vector< amrex::Real > m_rows
Definition: ERF_StationSampler.H:280
void flush()
Definition: ERF_StationSampler.cpp:636
bool empty() const
Definition: ERF_StationSampler.H:201
const amrex::Vector< Station > & stations() const
Definition: ERF_StationSampler.H:204
void setLevelsReported()
Definition: ERF_StationSampler.H:246
void checkHeaderMatches(const Station &station, const std::string &filename) const
Definition: ERF_StationSampler.cpp:523
void checkRestartFiles() const
Definition: ERF_StationSampler.cpp:601
bool allowUnavailable() const
Definition: ERF_StationSampler.H:236
std::string m_datetime_format
Definition: ERF_StationSampler.H:290
void rememberStencilGrids(const amrex::Vector< amrex::BoxArray > &ba, int finest_level)
Definition: ERF_StationSampler.cpp:629
bool stencilsValidFor(const amrex::Vector< amrex::BoxArray > &ba, int finest_level) const
Definition: ERF_StationSampler.cpp:619
void appendRow(amrex::Real time, amrex::Real epoch_time, const amrex::Vector< amrex::Real > &values)
Definition: ERF_StationSampler.cpp:379
void setWriteTimestamp(bool write_timestamp, const std::string &datetime_format)
Definition: ERF_StationSampler.H:227
int numColumns() const
Definition: ERF_StationSampler.H:206
bool m_allow_unavailable
Definition: ERF_StationSampler.H:275
std::string m_dir
Definition: ERF_StationSampler.H:292
amrex::Vector< amrex::Real > m_times
Definition: ERF_StationSampler.H:278
void setLowHeightWarned()
Definition: ERF_StationSampler.H:241
int bufferSteps() const
Definition: ERF_StationSampler.H:232
bool lowHeightWarned() const
Definition: ERF_StationSampler.H:240
bool m_opened
Definition: ERF_StationSampler.H:293
bool levelsReported() const
Definition: ERF_StationSampler.H:245
Definition: ERF_StationSampler.H:166
int height
Definition: ERF_StationSampler.H:169
int station
Definition: ERF_StationSampler.H:167
int loc
Definition: ERF_StationSampler.H:168
int var
Definition: ERF_StationSampler.H:170
Definition: ERF_StationSampler.H:117
amrex::Real req_lat
Definition: ERF_StationSampler.H:121
amrex::Real wx
Definition: ERF_StationSampler.H:147
int j1
Definition: ERF_StationSampler.H:146
amrex::Real cos_alpha
Definition: ERF_StationSampler.H:136
amrex::Real wy
Definition: ERF_StationSampler.H:148
amrex::Real req_lon
Definition: ERF_StationSampler.H:122
int jc
Definition: ERF_StationSampler.H:142
int i0
Definition: ERF_StationSampler.H:143
int ktop
Definition: ERF_StationSampler.H:149
amrex::Real got_lat
Definition: ERF_StationSampler.H:130
amrex::Real sin_alpha
Definition: ERF_StationSampler.H:137
amrex::Real first_cc_height
Definition: ERF_StationSampler.H:155
int col_begin
Definition: ERF_StationSampler.H:158
amrex::Real x
Definition: ERF_StationSampler.H:125
int ic
Definition: ERF_StationSampler.H:141
int i1
Definition: ERF_StationSampler.H:145
bool use_latlon
Definition: ERF_StationSampler.H:118
amrex::Real y
Definition: ERF_StationSampler.H:126
amrex::Real got_lon
Definition: ERF_StationSampler.H:131
int j0
Definition: ERF_StationSampler.H:144
int lev
Definition: ERF_StationSampler.H:140
Definition: ERF_StationSampler.H:71
std::string units
Definition: ERF_StationSampler.H:73
amrex::Real missing_value
Definition: ERF_StationSampler.H:79
bool cells_may_be_missing
Definition: ERF_StationSampler.H:78
int comp
Definition: ERF_StationSampler.H:80
std::string name
Definition: ERF_StationSampler.H:72
int comp_v
Definition: ERF_StationSampler.H:84
bool is_missing
Definition: ERF_StationSampler.H:75
StationEarthWind earth_wind
Definition: ERF_StationSampler.H:83
bool is_2d
Definition: ERF_StationSampler.H:74
Definition: ERF_StationSampler.H:174
amrex::Vector< StationLoc > locs
Definition: ERF_StationSampler.H:177
bool has_3d_vars() const
Definition: ERF_StationSampler.H:188
bool heights_are_agl
Definition: ERF_StationSampler.H:183
std::string name
Definition: ERF_StationSampler.H:175
amrex::Vector< amrex::Real > heights
Definition: ERF_StationSampler.H:182
amrex::Vector< StationVar > vars
Definition: ERF_StationSampler.H:176
amrex::Vector< int > columns
Definition: ERF_StationSampler.H:186