SlideShare a Scribd company logo
1 of 23
Download to read offline
MeteoIO


A meteo data I/O library
Before MeteoIO...
• Each application doing its IO
  – Insufficient robustness
  – IO functions spread out all over the code
  – Input data very strictly formatted, several
    steps in preparing the data
  – Hard to adapt to new protocols/formats
→IO a source of weakness...


                                                  2
MeteoIO: goals
• Remove all IO functions out of the
  physics engine
• Make IO easy to use
• Make IO robust
• Make IO flexible
• Greatly simplify data preparation
• Allow unmonitored, automatic operation
• Allow end user to fine tune his IO...
                                           3
MeteoIO: ini files
[Parameters]
DEMSRC            = ARC
DEMFILE           = ../input/surface-grids/zwischberg.dem


LANDUSESRC        = GRASS
LANDUSEFILE       = ../input/surface-grids/zwischberg.lus   plugins

METEOSRC          = A3D
METEOPATH         = ../input/meteo


SPECIALPTSSRC = A3D
SPECIALPTSFILE = ../input/surface-grids/zwischberg.pts


OUTPUT            = ARC
OUTPATH           = ../output/
                                                                      4
MeteoIO: primary data structures
• MeteoData:                       • StationData:
  – Date object                      – Longitude
  – Ta                               – Latitude
  – Iswr                             – Altitude
  – Vw                               – Northing (metric grid)
  – Rh                               – Easting (metric grid)
  – Lwr                              – Name
  – Nswc                             – Supports equality comparison
  – Ts0
  – P
  – ...
  – Supports equality comparison


                                                                      5
MeteoIO: example of use




                          6
What is it doing?
• Parsing io.ini
• Loading plugins supporting requested data sources
• Reading data (across files, network, protocols and
  supporting comments, different EOL, etc)
• Converts stations' coordinates if necessary
• Filtering data, marking invalid data as “no data”
• Conversion of units to SI




                                                       7
Example: output
[i] meteoio/A3DIO.cc:86: Loading dynamic plugins:
[i] Number of 2D meteo stations: 15
---------- Station: 1 / 16
Name:
 Air Temperature: 266.25              This station has no name
---------- Station: 2 / 16
 Name: ANET-ZER
 Air Temperature: 266.45
---------- Station: 3 / 16
 Name: ANET-VIS
 Air Temperature: 268.75
                                       (etc)


                                                                 8
Data sources
• Currently supported:
  – Meteo data: Alpine3D's Ascii, Boschung's
    XML, Gsn, Imis Oracle database, GeoTop
  – Grids: ARC, GRASS




                                               9
Writing a new IO plugin
• Provide implementation of some or all of:
ReadMeteoData (const Date_IO& dateStart, const Date_IO& dateEnd,
   std::vector< std::vector<MeteoData> >& vecMeteo, std::vector<
   std::vector<StationData> >& vecStation, const unsigned int&
   stationindex=IOUtils::npos)
Read2DGrid (Grid2DObject& grid_out, const string& parameter="")
ReadDEM (DEMObject& dem_out)
ReadLanduse (Grid2DObject& landuse_out)
ReadAssimilationData (const Date_IO& date_in, Grid2DObject& da_out)
ReadSpecialPoints (CSpecialPTSArray& pts)
Write2DGrid (const Grid2DObject& grid_in, const string& name="")



                                                                      10
Filters
• Available:
  – Min, max
  – Max observed changed
  – No observed change
• To be added:
  – Median Average Deviation
• Special processing
  – Resampling
  – accumulation
• Easy to add new filters      11
MeteoIO: example of use II




                             12
What does it change?
• IO are now buffered -> efficient on slow
  access
• Automatic resampling for missing data
  – Using linear interpolation between two
    neighbors
  – To be added: cyclic interpolation, etc




                                             13
Userland addition
In the user's code: add a function checking
     that the input requirements are met
         (ie: nb of lwr, nb of ta, etc)




                                          14
Data structures/methods
• Array, Array2D, Array3D
  – Using vectors for a safe and efficient
    implementation
• Grid2DObject, Grid3DObject
  – Geolocalized array
• DEMObject
  – Computes slope, aspect, normal's
    components (Corripio, Hicks, etc)

                                             15
MeteoIO: example of use III




                              16
MeteoIO: example of use IV




                             17
TA, 0 to 16°                    RH, 62% to 90%




  Gotthard, 2008­10­01 12:00, 19 stations        18
Spatial interpolations
• Available methods:
   – Std pressure
   – Constant value
   – Constant with lapse rate
   – IDW
   – IDW with lapse rate
   – For Rh, Td IDWK with lapse rate and back to Rh
   – Terrain influenced VW and DW

• One method defined for only 1 data input, one for
  multiple data input (fallback)
• Regression:
   – Linear regression for the moment, removes the worst data point if the
     regression is too poor

                                                                             19
Spatial interpolations 2
Planned additions:
  – Physical wind interpolation (quick Bernoulli
    resolution?)
  – More regression models (dynamically
    adjusted to the data)
  – Smarter choice of which method to use
    (dynamic, including data quality)



                                                   20
Geographic projections
• Conversion to/from WGS84 from any
  coordinate system
  – Through own implementation (CH1903, ...)
  – Through proj4 library
• Conversion to/from local grid
 MapProj local_proj(lat_ref, long_ref);
 local_proj.convert_from_WGS84(latitude, longitude, easting,
  northing);



                                                           21
MeteoIO: on the side
• Date handling (Date_IO class)
• Config files handling (ConfigReader
  class)
• Data storage (Arrays & grids classes,
  sparse matrix (coming))
• Ported to Pop-C++ for parallel execution
• Application specific IOs classes


                                             22
Thank you!
       Mathias Bavay (SLF)
Thomas Egger (Egger Consulting)
   Laurent Winkler (HES-SO)
        Florian Hof (SLF)
   Moustapha Mbengue (SLF)
     Gael Rosset (HES-SO)
   Julien Jeanneret (HES-SO)
        Nora Helbig (SLF)
                                  23

More Related Content

What's hot

Innovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat SatelliteInnovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat Satellite
Michele Marino
 
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Dave Callen
 

What's hot (20)

WMTS Performance Tests
WMTS Performance TestsWMTS Performance Tests
WMTS Performance Tests
 
CLIWOC Attributes
CLIWOC AttributesCLIWOC Attributes
CLIWOC Attributes
 
Detecting probability of ice formation on overhead lines of the Dutch railway...
Detecting probability of ice formation on overhead lines of the Dutch railway...Detecting probability of ice formation on overhead lines of the Dutch railway...
Detecting probability of ice formation on overhead lines of the Dutch railway...
 
Introduction to HDFLook_MODIS
Introduction to HDFLook_MODISIntroduction to HDFLook_MODIS
Introduction to HDFLook_MODIS
 
Paralell
ParalellParalell
Paralell
 
Deccan RubyConf 2016 - Lighning Talk - SpiceRub
Deccan RubyConf 2016 - Lighning Talk - SpiceRubDeccan RubyConf 2016 - Lighning Talk - SpiceRub
Deccan RubyConf 2016 - Lighning Talk - SpiceRub
 
Gagg: A graph Aggregation Operator
Gagg: A graph Aggregation OperatorGagg: A graph Aggregation Operator
Gagg: A graph Aggregation Operator
 
SX Aurora TSUBASA (Vector Engine) a Brand-new Vector Supercomputing power in...
SX Aurora TSUBASA  (Vector Engine) a Brand-new Vector Supercomputing power in...SX Aurora TSUBASA  (Vector Engine) a Brand-new Vector Supercomputing power in...
SX Aurora TSUBASA (Vector Engine) a Brand-new Vector Supercomputing power in...
 
Oss vs drive test pdcp throughput
Oss vs drive test pdcp throughputOss vs drive test pdcp throughput
Oss vs drive test pdcp throughput
 
distance_matrix_ch
distance_matrix_chdistance_matrix_ch
distance_matrix_ch
 
Development of Routing for Car Navigation Systems
Development of Routing for Car Navigation SystemsDevelopment of Routing for Car Navigation Systems
Development of Routing for Car Navigation Systems
 
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
SMiLE: Design and Development of an ISS Payload for Liquid Behavior Study in ...
 
Making data storage more efficient
Making data storage more efficientMaking data storage more efficient
Making data storage more efficient
 
Adopting OGC Standards in São Paulo Flood Alert System - FOSS4G 2014 - PDX
Adopting OGC Standards in São Paulo Flood Alert System  - FOSS4G 2014 - PDXAdopting OGC Standards in São Paulo Flood Alert System  - FOSS4G 2014 - PDX
Adopting OGC Standards in São Paulo Flood Alert System - FOSS4G 2014 - PDX
 
ENVI/IDL Tools for HDF
ENVI/IDL Tools for HDFENVI/IDL Tools for HDF
ENVI/IDL Tools for HDF
 
Innovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat SatelliteInnovative Solar Array Drive Assembly for CubeSat Satellite
Innovative Solar Array Drive Assembly for CubeSat Satellite
 
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
Briefing - The Atlast V Aft Bulkhead Carrier Update - Past Missions, Upcoming...
 
A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...
A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...
A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...
 
HDF-EOS Development Status and Maintenance Support
HDF-EOS Development Status and Maintenance SupportHDF-EOS Development Status and Maintenance Support
HDF-EOS Development Status and Maintenance Support
 
ESCAPE Kick-off meeting - KM3Net, Opening a new window on our universe (Feb 2...
ESCAPE Kick-off meeting - KM3Net, Opening a new window on our universe (Feb 2...ESCAPE Kick-off meeting - KM3Net, Opening a new window on our universe (Feb 2...
ESCAPE Kick-off meeting - KM3Net, Opening a new window on our universe (Feb 2...
 

Similar to Meteo I/O Introduction

BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentation
lilyco
 
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
Ryousei Takano
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is you
Davide Carboni
 
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
Deltares
 

Similar to Meteo I/O Introduction (20)

Meteoio Introduction given by Mathias Bavey in Bozen
Meteoio Introduction given by Mathias Bavey in BozenMeteoio Introduction given by Mathias Bavey in Bozen
Meteoio Introduction given by Mathias Bavey in Bozen
 
High-Volume Data Collection and Real Time Analytics Using Redis
High-Volume Data Collection and Real Time Analytics Using RedisHigh-Volume Data Collection and Real Time Analytics Using Redis
High-Volume Data Collection and Real Time Analytics Using Redis
 
BWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 PresentationBWC Supercomputing 2008 Presentation
BWC Supercomputing 2008 Presentation
 
Programmable Exascale Supercomputer
Programmable Exascale SupercomputerProgrammable Exascale Supercomputer
Programmable Exascale Supercomputer
 
Toolchain for real-time simulations: GSN-MeteoIO-GEOtop
Toolchain for real-time simulations: GSN-MeteoIO-GEOtopToolchain for real-time simulations: GSN-MeteoIO-GEOtop
Toolchain for real-time simulations: GSN-MeteoIO-GEOtop
 
Exascale Capabl
Exascale CapablExascale Capabl
Exascale Capabl
 
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
A Scalable and Distributed Electrical Power Monitoring System Utilizing Cloud...
 
Development and Applications of Distributed IoT Sensors for Intermittent Conn...
Development and Applications of Distributed IoT Sensors for Intermittent Conn...Development and Applications of Distributed IoT Sensors for Intermittent Conn...
Development and Applications of Distributed IoT Sensors for Intermittent Conn...
 
Working with HDF and netCDF Data in ArcGIS: Tools and Case Studies
Working with HDF and netCDF Data in ArcGIS: Tools and Case StudiesWorking with HDF and netCDF Data in ArcGIS: Tools and Case Studies
Working with HDF and netCDF Data in ArcGIS: Tools and Case Studies
 
A Low-cost and Scalable Visualization System for Electricity Consumption
A Low-cost and Scalable Visualization System for Electricity ConsumptionA Low-cost and Scalable Visualization System for Electricity Consumption
A Low-cost and Scalable Visualization System for Electricity Consumption
 
Grafana in space: Monitoring Japan's SLIM moon lander in real time
Grafana in space: Monitoring Japan's SLIM moon lander  in real timeGrafana in space: Monitoring Japan's SLIM moon lander  in real time
Grafana in space: Monitoring Japan's SLIM moon lander in real time
 
New features in the version 4.6 of the CFD meteodyn WT dedicated to wind reso...
New features in the version 4.6 of the CFD meteodyn WT dedicated to wind reso...New features in the version 4.6 of the CFD meteodyn WT dedicated to wind reso...
New features in the version 4.6 of the CFD meteodyn WT dedicated to wind reso...
 
The world is the computer and the programmer is you
The world is the computer and the programmer is youThe world is the computer and the programmer is you
The world is the computer and the programmer is you
 
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
Dsd int 2014 - data science symposium - application 1 - point clouds, prof. p...
 
FMI Information Management System
FMI Information Management SystemFMI Information Management System
FMI Information Management System
 
National Polar-orbiting Operational Environmental Satellite System (NPOESS)
National Polar-orbiting Operational Environmental Satellite System (NPOESS)National Polar-orbiting Operational Environmental Satellite System (NPOESS)
National Polar-orbiting Operational Environmental Satellite System (NPOESS)
 
Road Monitoring - 2019 - IoT@Sapienza - v3
 Road Monitoring - 2019 - IoT@Sapienza - v3 Road Monitoring - 2019 - IoT@Sapienza - v3
Road Monitoring - 2019 - IoT@Sapienza - v3
 
C2MON - A highly scalable monitoring platform for Big Data scenarios @CERN by...
C2MON - A highly scalable monitoring platform for Big Data scenarios @CERN by...C2MON - A highly scalable monitoring platform for Big Data scenarios @CERN by...
C2MON - A highly scalable monitoring platform for Big Data scenarios @CERN by...
 
Enabling efficient movement of data into & out of a high-performance analysis...
Enabling efficient movement of data into & out of a high-performance analysis...Enabling efficient movement of data into & out of a high-performance analysis...
Enabling efficient movement of data into & out of a high-performance analysis...
 
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
Klessydra t - designing vector coprocessors for multi-threaded edge-computing...
 

More from Riccardo Rigon

More from Riccardo Rigon (20)

Models for hazards mapping
Models for hazards mappingModels for hazards mapping
Models for hazards mapping
 
A short introduction to some hydrological extreme phenomena
A short introduction to some hydrological extreme phenomenaA short introduction to some hydrological extreme phenomena
A short introduction to some hydrological extreme phenomena
 
EvaporAzione
EvaporAzioneEvaporAzione
EvaporAzione
 
Francesco Serafin
Francesco Serafin Francesco Serafin
Francesco Serafin
 
Meledrio
MeledrioMeledrio
Meledrio
 
Lisbon talk for SteepStreams
Lisbon talk  for SteepStreamsLisbon talk  for SteepStreams
Lisbon talk for SteepStreams
 
Grids implementation
Grids implementationGrids implementation
Grids implementation
 
Grids
GridsGrids
Grids
 
Some photos from the field
Some photos from the fieldSome photos from the field
Some photos from the field
 
Virtual water fem 07032017
Virtual water fem 07032017Virtual water fem 07032017
Virtual water fem 07032017
 
Dalton Prize Lecture 2017 by Dani Or
Dalton Prize Lecture 2017 by Dani OrDalton Prize Lecture 2017 by Dani Or
Dalton Prize Lecture 2017 by Dani Or
 
Projecting Climate Change Impacts on Water Resources in Regions of Complex To...
Projecting Climate Change Impacts on Water Resources in Regions of Complex To...Projecting Climate Change Impacts on Water Resources in Regions of Complex To...
Projecting Climate Change Impacts on Water Resources in Regions of Complex To...
 
The modern flood forecasting
The modern flood forecastingThe modern flood forecasting
The modern flood forecasting
 
La moderna previsione delle piene
La moderna previsione delle pieneLa moderna previsione delle piene
La moderna previsione delle piene
 
Hydrological Extremes and Human societies
Hydrological Extremes and Human societies Hydrological Extremes and Human societies
Hydrological Extremes and Human societies
 
The Science of Water Transport and Floods from Theory to Relevant Application...
The Science of Water Transport and Floods from Theory to Relevant Application...The Science of Water Transport and Floods from Theory to Relevant Application...
The Science of Water Transport and Floods from Theory to Relevant Application...
 
The Science of Water Transport and Floods from Theory to Relevant Applications
The Science of Water Transport and Floods from Theory to Relevant ApplicationsThe Science of Water Transport and Floods from Theory to Relevant Applications
The Science of Water Transport and Floods from Theory to Relevant Applications
 
Climaware at the end
Climaware at the endClimaware at the end
Climaware at the end
 
Hymod model for catchments
Hymod model for catchmentsHymod model for catchments
Hymod model for catchments
 
Egu2017 pico
Egu2017 picoEgu2017 pico
Egu2017 pico
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Meteo I/O Introduction

  • 1. MeteoIO A meteo data I/O library
  • 2. Before MeteoIO... • Each application doing its IO – Insufficient robustness – IO functions spread out all over the code – Input data very strictly formatted, several steps in preparing the data – Hard to adapt to new protocols/formats →IO a source of weakness... 2
  • 3. MeteoIO: goals • Remove all IO functions out of the physics engine • Make IO easy to use • Make IO robust • Make IO flexible • Greatly simplify data preparation • Allow unmonitored, automatic operation • Allow end user to fine tune his IO... 3
  • 4. MeteoIO: ini files [Parameters] DEMSRC = ARC DEMFILE = ../input/surface-grids/zwischberg.dem LANDUSESRC = GRASS LANDUSEFILE = ../input/surface-grids/zwischberg.lus plugins METEOSRC = A3D METEOPATH = ../input/meteo SPECIALPTSSRC = A3D SPECIALPTSFILE = ../input/surface-grids/zwischberg.pts OUTPUT = ARC OUTPATH = ../output/ 4
  • 5. MeteoIO: primary data structures • MeteoData: • StationData: – Date object – Longitude – Ta – Latitude – Iswr – Altitude – Vw – Northing (metric grid) – Rh – Easting (metric grid) – Lwr – Name – Nswc – Supports equality comparison – Ts0 – P – ... – Supports equality comparison 5
  • 7. What is it doing? • Parsing io.ini • Loading plugins supporting requested data sources • Reading data (across files, network, protocols and supporting comments, different EOL, etc) • Converts stations' coordinates if necessary • Filtering data, marking invalid data as “no data” • Conversion of units to SI 7
  • 8. Example: output [i] meteoio/A3DIO.cc:86: Loading dynamic plugins: [i] Number of 2D meteo stations: 15 ---------- Station: 1 / 16 Name: Air Temperature: 266.25 This station has no name ---------- Station: 2 / 16 Name: ANET-ZER Air Temperature: 266.45 ---------- Station: 3 / 16 Name: ANET-VIS Air Temperature: 268.75 (etc) 8
  • 9. Data sources • Currently supported: – Meteo data: Alpine3D's Ascii, Boschung's XML, Gsn, Imis Oracle database, GeoTop – Grids: ARC, GRASS 9
  • 10. Writing a new IO plugin • Provide implementation of some or all of: ReadMeteoData (const Date_IO& dateStart, const Date_IO& dateEnd, std::vector< std::vector<MeteoData> >& vecMeteo, std::vector< std::vector<StationData> >& vecStation, const unsigned int& stationindex=IOUtils::npos) Read2DGrid (Grid2DObject& grid_out, const string& parameter="") ReadDEM (DEMObject& dem_out) ReadLanduse (Grid2DObject& landuse_out) ReadAssimilationData (const Date_IO& date_in, Grid2DObject& da_out) ReadSpecialPoints (CSpecialPTSArray& pts) Write2DGrid (const Grid2DObject& grid_in, const string& name="") 10
  • 11. Filters • Available: – Min, max – Max observed changed – No observed change • To be added: – Median Average Deviation • Special processing – Resampling – accumulation • Easy to add new filters 11
  • 12. MeteoIO: example of use II 12
  • 13. What does it change? • IO are now buffered -> efficient on slow access • Automatic resampling for missing data – Using linear interpolation between two neighbors – To be added: cyclic interpolation, etc 13
  • 14. Userland addition In the user's code: add a function checking that the input requirements are met (ie: nb of lwr, nb of ta, etc) 14
  • 15. Data structures/methods • Array, Array2D, Array3D – Using vectors for a safe and efficient implementation • Grid2DObject, Grid3DObject – Geolocalized array • DEMObject – Computes slope, aspect, normal's components (Corripio, Hicks, etc) 15
  • 16. MeteoIO: example of use III 16
  • 17. MeteoIO: example of use IV 17
  • 18. TA, 0 to 16° RH, 62% to 90% Gotthard, 2008­10­01 12:00, 19 stations 18
  • 19. Spatial interpolations • Available methods: – Std pressure – Constant value – Constant with lapse rate – IDW – IDW with lapse rate – For Rh, Td IDWK with lapse rate and back to Rh – Terrain influenced VW and DW • One method defined for only 1 data input, one for multiple data input (fallback) • Regression: – Linear regression for the moment, removes the worst data point if the regression is too poor 19
  • 20. Spatial interpolations 2 Planned additions: – Physical wind interpolation (quick Bernoulli resolution?) – More regression models (dynamically adjusted to the data) – Smarter choice of which method to use (dynamic, including data quality) 20
  • 21. Geographic projections • Conversion to/from WGS84 from any coordinate system – Through own implementation (CH1903, ...) – Through proj4 library • Conversion to/from local grid MapProj local_proj(lat_ref, long_ref); local_proj.convert_from_WGS84(latitude, longitude, easting, northing); 21
  • 22. MeteoIO: on the side • Date handling (Date_IO class) • Config files handling (ConfigReader class) • Data storage (Arrays & grids classes, sparse matrix (coming)) • Ported to Pop-C++ for parallel execution • Application specific IOs classes 22
  • 23. Thank you! Mathias Bavay (SLF) Thomas Egger (Egger Consulting) Laurent Winkler (HES-SO) Florian Hof (SLF) Moustapha Mbengue (SLF) Gael Rosset (HES-SO) Julien Jeanneret (HES-SO) Nora Helbig (SLF) 23