Commit 6ba732e4 authored by Frank Van Der Stelt's avatar Frank Van Der Stelt
Browse files

First version of a description of the loading routines of our yearly files.

parents
# Shair Metadata Loading Routines (YearlyExtendedDao.java)
## Inlet
* **Find:**
- Plocka _inlet_ direkt från _observation_ om den finns.
- Om inte så hämtar man alla _observations_ för denna _station_/_pollutant_ kombination, kollar att _observation_ inte har en _endtime_ och att _spprocessens_ _durationunit_ är samma som årsfilens _durationunit_. _Inlet_ kopplat till den första _observation_ som svarar mot dessa kriterier används.
* **Create:**
- Med hjälp av _observation_, _pollutant_, _station_ och _spprocess_ letar man efter en _inlet_.
- Om ingen _inlet_ hittas så skapar man en ny.
* **Update:**
- Uppdateras varje gång man läser in en årsfil. Gamla värden skrivs över.
* **Close:**
- Finns inget tidsaspekt på en _inlet_, så den stängs aldrig.
## Network
* **Find:**
- Om _collaborationarea_ så används denna för att hitta _network_ annars använder man _adminunit_
* **Create:**
- Skapas om ingen hittas
* **Update:**
- Uppdateras varje gång man läser in en årsfil. Stora uppdateringar om en _network_ skulle ändras till/från en _collaborationarea_
* **Close:**
- _Endtime_ sätts aldrig, så den kommer inte att stängas.
## Observation
* **Find:**
- En lista med _observations_ med _pollutant_/_station_ kombination hämtas. Sedan jämför man om _observations_ _begintime_ är samma som _instrumentStartDate_ och att _spprocess_ kopplat till _observation_ har en _durationunit_ som är samma som den som anges i årsfilen. Första _observation_ som svarar mot dessa kriterier används.
* **Create:**
- Om _observation_ inte hittas
- Om en _observation_ hittas, men inte _inlet_.
* **Update:**
- Vid varje inläsning av en årsfil.
* **Close:**
- Om _inlet_ inte hittas, så sätter man en _endtime_ på _observation_.
- Om man har anget en _InstrumentEndDate_ i årsfilen så stänger man _observation_.
## Sampling Point
* **Find:**
- Hämta _samplingpoint_ kopplat till _observationen_ direkt om den finns.
- Annars hämtar man alla _samplingpoints_ med årsfilens _station_/_pollutant_/_durationunit_ kombination. Denna lista går man igenom och tittar om de har samma latitud/longitud som det som angavs i årsfilen. Den sista _samplingpoint_ i listan som har rätt latitud/longitud blir den returnerade _samplingpointen_.
* **Create:**
- Om _samplingpoint_ inte finns.
* **Update:**
- Uppdateras varje gång man läser in en årsfil.
* **Close:**
- Om _inlet_ inte hittas, så sätter man en _endtime_ på alla _samplingpoints_ som är
kopplade till nuvarande _station_/_pollutant_ kombination och skapar en ny.
- När man inte har en _observation_ eller om man har en _observation_ utan _samplingpoint_ så hämtar man alla samplingpoints med årsfilens _station_/_pollutant_/_durationunit_ kombination. Sedan kollar man på latitud/longitud, de som ligger på fel latitud/longitud sätter man en _endtime_ på.
## Sampling Point Process
* **Find:**
- _Observationen_, som man har letat efter i ett tidigare steg, ska inte vara null och ska ha en _samplingpoint_. _Samplingpointen_ ska ha en _durationunit_ som är lika med _durationunit_ i årsfilen. _Obervationens_ _begintime_ ska vara lika med _instrumentStartDate_ samt att _equivalencedemonstrated_ inte får vara null. Man tar då denna _spprocess_.
- Annars så tar man fram en lista med alla _observations_ med årsfilens _station_/_pollutant_ kombination. Om _observation_ _begintime_ är samma som _instrumentStartDate_, _equivalencedemonstrated_ är inte null och _durationunit_ på _spprocessen_ är samma som filens _durationunit_ då tar man denna träff och returnerar denna _spprocess_.
* **Create:**
- När _inlet_ inte finns så skapas en ny _spprocess_.
* **Update:**
- Uppdateras varje gång man läser in en årsfil.
* **Close:**
- Finns inget tidsaspekt på en _spprocess_, så den stängs aldrig.
## _Station_
* **Find:**
- Kolla om det finns en _station_ i databasen med filens _natlstationkod_.
* **Create:**
- Om inte en _station_ finns i databasen med filens _natlstationkod_.
* **Update:**
- Vid varje inläsning av en årsfil.
* **Close:**
- Sätter _endtime_ om det finns i årsfilen.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment