Plotting Options#

Setting up eva interactive and data collection

from eva.eva_interactive import EvaInteractive
amsua_file = '../../../data/ioda_obs_space.amsua_n19.hofx.2020-12-14T210000Z.nc4'
aircraft_file = '../../../data/ioda_obs_space.aircraft.hofx.2020-12-14T210000Z.nc4'
eva = EvaInteractive()
eva.load_collection('aircraft', aircraft_file, 'IodaObsSpace')
eva.load_collection('amsua', amsua_file, 'IodaObsSpace')
INFO EvaInteractive:   Initializing eva IodaObsSpace object
INFO DataCollections: --------------------------------------------------------------------------------
INFO DataCollections: Collections available: 
INFO DataCollections: 
INFO DataCollections: Collection name: aircraft
INFO DataCollections: 
INFO DataCollections:  Dimensions:
INFO DataCollections:   Location: 99
INFO DataCollections: 
INFO DataCollections:  Coordinates:
INFO DataCollections:   Location
INFO DataCollections: 
INFO DataCollections:  Data (group::variable):
INFO DataCollections:   EffectiveError::airTemperature    (float32) | Min=+1.0000e+00, Max=+1.4706e+00, RMS=+1.0771e+00
INFO DataCollections:   EffectiveError::windEastward      (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   EffectiveError::windNorthward     (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   EffectiveQC::airTemperature       (int32  ) | Min=         +0, Max=         +0
INFO DataCollections:   EffectiveQC::windEastward         (int32  ) | Min=         +0, Max=         +0
INFO DataCollections:   EffectiveQC::windNorthward        (int32  ) | Min=         +0, Max=         +0
INFO DataCollections:   GsiAdjustObsError::airTemperature (float32) | Min=+1.0000e+00, Max=+2.7137e+00, RMS=+1.2265e+00
INFO DataCollections:   GsiAdjustObsError::windEastward   (float32) | Min=+2.5000e+00, Max=+5.1534e+00, RMS=+2.7953e+00
INFO DataCollections:   GsiAdjustObsError::windNorthward  (float32) | Min=+2.5000e+00, Max=+5.1534e+00, RMS=+2.7953e+00
INFO DataCollections:   GsiEffectiveQC::airTemperature    (int32  ) | Min=         +0, Max=         +1
INFO DataCollections:   GsiEffectiveQC::windEastward      (int32  ) | Min=         +0, Max=         +1
INFO DataCollections:   GsiEffectiveQC::windNorthward     (int32  ) | Min=         +0, Max=         +1
INFO DataCollections:   GsiFinalObsError::airTemperature  (float32) | Min=+1.0000e+00, Max=+1.4548e+01, RMS=+1.9612e+00
INFO DataCollections:   GsiFinalObsError::windEastward    (float32) | Min=+2.5000e+00, Max=+9.0386e+00, RMS=+2.9692e+00
INFO DataCollections:   GsiFinalObsError::windNorthward   (float32) | Min=+2.5000e+00, Max=+9.0386e+00, RMS=+2.9692e+00
INFO DataCollections:   GsiHofX::airTemperature           (float32) | Min=+2.1099e+02, Max=+2.9181e+02, RMS=+2.5772e+02
INFO DataCollections:   GsiHofX::windEastward             (float32) | Min=-3.9112e+00, Max=+5.3673e+01, RMS=+2.3508e+01
INFO DataCollections:   GsiHofX::windNorthward            (float32) | Min=-4.5300e+01, Max=+2.8187e+01, RMS=+1.3531e+01
INFO DataCollections:   GsiHofXBc::airTemperature         (float32) | Min=+2.1134e+02, Max=+2.9142e+02, RMS=+2.5761e+02
INFO DataCollections:   GsiHofXBc::windEastward           (float32) | Min=-3.9112e+00, Max=+5.3673e+01, RMS=+2.3508e+01
INFO DataCollections:   GsiHofXBc::windNorthward          (float32) | Min=-4.5300e+01, Max=+2.8187e+01, RMS=+1.3531e+01
INFO DataCollections:   GsiInputObsError::windEastward    (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   GsiInputObsError::windNorthward   (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   GsiQCWeight::airTemperature       (float32) | Min=+4.0000e+00, Max=+4.0000e+00, RMS=+4.0000e+00
INFO DataCollections:   GsiQCWeight::windEastward         (float32) | Min=+4.0000e+00, Max=+4.0000e+00, RMS=+4.0000e+00
INFO DataCollections:   GsiQCWeight::windNorthward        (float32) | Min=+4.0000e+00, Max=+4.0000e+00, RMS=+4.0000e+00
INFO DataCollections:   GsiUseFlag::airTemperature        (int32  ) | Min=         -1, Max=         +1
INFO DataCollections:   GsiUseFlag::windEastward          (int32  ) | Min=         -1, Max=         +1
INFO DataCollections:   GsiUseFlag::windNorthward         (int32  ) | Min=         -1, Max=         +1
INFO DataCollections:   MetaData::dateTime                (int64  ) | Min=+1607979779, Max=+1608000419
INFO DataCollections:   MetaData::latitude                (float32) | Min=+1.9650e+01, Max=+4.4647e+01, RMS=+3.5280e+01
INFO DataCollections:   MetaData::longitude               (float32) | Min=+2.3754e+02, Max=+2.8530e+02, RMS=+2.6559e+02
INFO DataCollections:   MetaData::pressure                (float32) | Min=+1.7870e+04, Max=+1.0173e+05, RMS=+6.4129e+04
INFO DataCollections:   MetaData::stationElevation        (float32) | Min=-7.8000e+01, Max=+1.2497e+04, RMS=+7.1935e+03
INFO DataCollections:   MetaData::height                  (float32) | Min=-3.4000e+01, Max=+1.2497e+04, RMS=+6.5524e+03
INFO DataCollections:   MetaData::stationIdentification   (object )
INFO DataCollections:   ObsBias::airTemperature           (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   ObsBias::windEastward             (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   ObsBias::windNorthward            (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   ObsError::airTemperature          (float32) | Min=+1.0000e+00, Max=+1.4706e+00, RMS=+1.0771e+00
INFO DataCollections:   ObsError::windEastward            (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   ObsError::windNorthward           (float32) | Min=+2.5000e+00, Max=+2.5000e+00, RMS=+2.5000e+00
INFO DataCollections:   ObsType::airTemperature           (int32  ) | Min=       +133, Max=       +133
INFO DataCollections:   ObsType::windEastward             (int32  ) | Min=       +233, Max=       +233
INFO DataCollections:   ObsType::windNorthward            (int32  ) | Min=       +233, Max=       +233
INFO DataCollections:   ObsValue::airTemperature          (float32) | Min=+2.0815e+02, Max=+2.9125e+02, RMS=+2.5780e+02
INFO DataCollections:   ObsValue::windEastward            (float32) | Min=-6.1000e+00, Max=+5.5300e+01, RMS=+2.3130e+01
INFO DataCollections:   ObsValue::windNorthward           (float32) | Min=-4.7000e+01, Max=+3.0400e+01, RMS=+1.4299e+01
INFO DataCollections:   PreQC::airTemperature             (int32  ) | Min=         +1, Max=        +13
INFO DataCollections:   PreQC::windEastward               (int32  ) | Min=         +1, Max=        +13
INFO DataCollections:   PreQC::windNorthward              (int32  ) | Min=         +1, Max=        +13
INFO DataCollections:   PreUseFlag::airTemperature        (int32  ) | Min=         +0, Max=       +101
INFO DataCollections:   PreUseFlag::windEastward          (int32  ) | Min=         +0, Max=       +101
INFO DataCollections:   PreUseFlag::windNorthward         (int32  ) | Min=         +0, Max=       +101
INFO DataCollections:   hofx::airTemperature              (float32) | Min=+2.1094e+02, Max=+2.9195e+02, RMS=+2.5773e+02
INFO DataCollections:   hofx::windEastward                (float32) | Min=-3.8279e+00, Max=+5.3992e+01, RMS=+2.3526e+01
INFO DataCollections:   hofx::windNorthward               (float32) | Min=-4.6586e+01, Max=+2.8748e+01, RMS=+1.3622e+01
INFO DataCollections: --------------------------------------------------------------------------------
INFO EvaInteractive:   Initializing eva IodaObsSpace object
INFO DataCollections: --------------------------------------------------------------------------------
INFO DataCollections: Collections available: 
INFO DataCollections: 
INFO DataCollections: Collection name: amsua
INFO DataCollections: 
INFO DataCollections:  Dimensions:
INFO DataCollections:   Channel: 15
INFO DataCollections:   Location: 100
INFO DataCollections: 
INFO DataCollections:  Coordinates:
INFO DataCollections:   Channel
INFO DataCollections:   Location
INFO DataCollections: 
INFO DataCollections:  Data (group::variable):
INFO DataCollections:   EffectiveError::brightnessTemperature              (float32) | Min=+2.3000e-01, Max=+6.5943e+00, RMS=+2.1473e+00
INFO DataCollections:   MetaData::channelNumber                            (float64) | Min=+1.0000e+00, Max=+1.5000e+01, RMS=+9.0921e+00
INFO DataCollections:   EffectiveQC::brightnessTemperature                 (int32  ) | Min=         +0, Max=        +19
INFO DataCollections:   GsiBc::brightnessTemperature                       (float32) | Min=-9.8679e+00, Max=+4.3491e+01, RMS=+3.3058e+00
INFO DataCollections:   GsiEffectiveQC::brightnessTemperature              (int32  ) | Min=         +0, Max=         +1
INFO DataCollections:   GsiFinalObsError::brightnessTemperature            (float32) | Min=+2.3000e-01, Max=+8.3878e+00, RMS=+2.2078e+00
INFO DataCollections:   GsiHofX::brightnessTemperature                     (float32) | Min=+1.4130e+02, Max=+2.8025e+02, RMS=+2.3076e+02
INFO DataCollections:   GsiHofXBc::brightnessTemperature                   (float32) | Min=+1.4369e+02, Max=+2.8025e+02, RMS=+2.3102e+02
INFO DataCollections:   GsiHofXClr::brightnessTemperature                  (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   MetaData::sensorZenithAngle                        (float32) | Min=-4.4800e+01, Max=+4.4800e+01, RMS=+2.8209e+01
INFO DataCollections:   MetaData::sensorCentralFrequency                   (float32) | Min=+2.3800e+01, Max=+8.9010e+01, RMS=+5.5628e+01
INFO DataCollections:   MetaData::sensorScanPosition                       (float32) | Min=+4.0000e+00, Max=+2.7000e+01, RMS=+1.6427e+01
INFO DataCollections:   MetaData::ObsError                                 (float32) | Min=+2.3000e-01, Max=+5.0000e+00, RMS=+1.7767e+00
INFO DataCollections:   MetaData::mean_lapse_rate                          (float32) | Min=-8.1909e+00, Max=+4.7830e+00, RMS=+3.9322e+00
INFO DataCollections:   MetaData::longitude                                (float32) | Min=+8.4916e+00, Max=+3.5774e+02, RMS=+2.0666e+02
INFO DataCollections:   MetaData::gsi_use_flag                             (int32  ) | Min=         -1, Max=         +4
INFO DataCollections:   MetaData::latitude                                 (float32) | Min=-8.6511e+01, Max=-5.4103e+01, RMS=+6.9190e+01
INFO DataCollections:   MetaData::sensorViewAngle                          (float32) | Min=-3.8334e+01, Max=+3.8325e+01, RMS=+2.4368e+01
INFO DataCollections:   MetaData::clw_retrieved_from_observation           (float32) | Min=-1.5052e-01, Max=+2.8662e-01, RMS=+7.1686e-02
INFO DataCollections:   MetaData::clw_retrieved_from_background            (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   MetaData::solarZenithAngle                         (float32) | Min=+6.7860e+01, Max=+8.4950e+01, RMS=+7.6098e+01
INFO DataCollections:   MetaData::sensorPolarizationDirection              (int32  ) | Min=         +9, Max=        +10
INFO DataCollections:   MetaData::scat_retrieved_from_observation          (float32) | Min=+0.0000e+00, Max=+0.0000e+00, RMS=+0.0000e+00
INFO DataCollections:   MetaData::sensorCentralWavenumber                  (float32) | Min=+7.9387e-01, Max=+2.9691e+00, RMS=+1.8555e+00
INFO DataCollections:   MetaData::sensorChannelNumber                      (int32  ) | Min=         +1, Max=        +15
INFO DataCollections:   MetaData::sensorAzimuthAngle                       (float32) | Min=+3.0200e+00, Max=+3.5661e+02, RMS=+2.0913e+02
INFO DataCollections:   MetaData::dateTime                                 (int64  ) | Min=+1607983897, Max=+1607997115
INFO DataCollections:   MetaData::solarAzimuthAngle                        (float32) | Min=+9.7600e+01, Max=+2.4965e+02, RMS=+1.7693e+02
INFO DataCollections:   MetaData::height                                   (float32) | Min=+0.0000e+00, Max=+3.9396e+03, RMS=+1.5339e+03
INFO DataCollections:   ObsBias::brightnessTemperature                     (float32) | Min=-1.0442e+01, Max=+4.4369e+01, RMS=+3.5998e+00
INFO DataCollections:   ObsError::brightnessTemperature                    (float32) | Min=+2.3000e-01, Max=+5.0000e+00, RMS=+1.7767e+00
INFO DataCollections:   ObsValue::brightnessTemperature                    (float32) | Min=+1.4472e+02, Max=+2.8050e+02, RMS=+2.3172e+02
INFO DataCollections:   PreQC::brightnessTemperature                       (int32  ) | Min=        -51, Max=        +51
INFO DataCollections:   cloud_liquid_waterPredictor::brightnessTemperature (float32) | Min=-1.2171e-01, Max=+2.8752e-01, RMS=+5.3735e-02
INFO DataCollections:   constantPredictor::brightnessTemperature           (float32) | Min=+0.0000e+00, Max=+1.0000e+00, RMS=+9.6609e-01
INFO DataCollections:   emissivityPredictor::brightnessTemperature         (float32) | Min=+0.0000e+00, Max=+2.6238e+02, RMS=+9.9499e+01
INFO DataCollections:   hofx::brightnessTemperature                        (float32) | Min=+1.4351e+02, Max=+2.8025e+02, RMS=+2.3099e+02
INFO DataCollections:   lapse_ratePredictor::brightnessTemperature         (float32) | Min=-7.1894e+00, Max=+4.0331e+00, RMS=+2.2956e+00
INFO DataCollections:   lapse_rate_order_2Predictor::brightnessTemperature (float32) | Min=+0.0000e+00, Max=+5.1687e+01, RMS=+1.0174e+01
INFO DataCollections:   scan_anglePredictor::brightnessTemperature         (float32) | Min=-6.6905e-01, Max=+6.6890e-01, RMS=+4.1088e-01
INFO DataCollections:   scan_angle_order_2Predictor::brightnessTemperature (float32) | Min=+0.0000e+00, Max=+4.4763e-01, RMS=+2.3045e-01
INFO DataCollections:   scan_angle_order_3Predictor::brightnessTemperature (float32) | Min=-2.9949e-01, Max=+2.9928e-01, RMS=+1.3946e-01
INFO DataCollections:   scan_angle_order_4Predictor::brightnessTemperature (float32) | Min=+0.0000e+00, Max=+2.0038e-01, RMS=+8.7428e-02
INFO DataCollections: --------------------------------------------------------------------------------
eva.arithmetic('ObsValueMinusGsiHofXBc', 'ObsValue-GsiHofXBc', 'amsua')
eva.arithmetic('ObsValueMinusHofX', 'ObsValue-hofx', 'amsua')
INFO EvaInteractive: Added 'ObsValueMinusGsiHofXBc' to data collection 'amsua'.
INFO EvaInteractive: Added 'ObsValueMinusHofX' to data collection 'amsua'.
eva.accept_where('EffectiveErrorPassedQc', 'EffectiveError', ['EffectiveQC == 0'], 'aircraft')
eva.accept_where('FinalObsErrorPassedQc', 'GsiFinalObsError', ['GsiEffectiveQC == 0'], 'aircraft')
INFO EvaInteractive: Added 'EffectiveErrorPassedQc' to data collection 'aircraft'.
INFO EvaInteractive: Added 'FinalObsErrorPassedQc' to data collection 'aircraft'.

Plot Types#

Scatter plot

eva.scatter('amsua::ObsValueMinusGsiHofXBc::brightnessTemperature::5', 
            'amsua::ObsValueMinusHofX::brightnessTemperature::5')

Density plot

plot_list = ['amsua::ObsValueMinusGsiHofXBc::brightnessTemperature::7', 
            'amsua::ObsValueMinusHofX::brightnessTemperature::7']
eva.density_plot(plot_list)

Map scatter plot

eva.map_scatter('aircraft::ObsValue::windEastward')

Histogram

eva.histogram(plot_list)

Line plot

eva.line_plot(plot_list)
This web page was generated from a Jupyter notebook and not all interactivity will work on this website. Right click to download and run locally for full Python-backed interactivity.

Right click to download this notebook from GitHub.