Skip to content
/ ex_viva Public

Elixir API to get weather observations form the Swedish Maritime Adminstration (Sjöfartsverket)

License

Notifications You must be signed in to change notification settings

kwando/ex_viva

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExViva

An Elixir API to weather observations from the Swedish Maritime Administration.

Listing all stations:

iex(1)> ExViva.get_stations
{:ok,
 [
   %ExViva.Station{
     id: 169,
     latitude: 57.789774,
     longitude: 12.010189,
     name: "Agnesberg (GBG Stad)"
   },
   %ExViva.Station{id: 21, latitude: 65.5697, longitude: 22.1725, name: "Ale"},
   %ExViva.Station{
     id: 15,
     latitude: 58.484266,
     longitude: 16.960683,
     name: "Arkö"
   },
   %ExViva.Station{id: 17, latitude: 65.5727, longitude: 22.1703, name: "Atle"},
   %ExViva.Station{
     id: 25,
     latitude: 55.74588,
     longitude: 12.9168,
     name: "Barsebäck"
   },
   %ExViva.Station{
     id: 141,
     latitude: 59.32078,
     longitude: 18.15478,
     name: "Blockhusudden (SH)"
   },
   %ExViva.Station{
     id: 27,
     latitude: 59.0998,
     longitude: 17.67833,
     name: "Brandalsund"
   },
   %ExViva.Station{
     id: 30,
     latitude: 58.34005,
     longitude: 12.351683,
     name: "Brinkebergskulle Nedre"
   },
   %ExViva.Station{
     id: 31,
     latitude: 58.34102,
     longitude: 12.35092,
     name: "Brinkebergskulle Övre"
   },
   %ExViva.Station{
     id: 32,
     latitude: 58.336,
     longitude: 11.4046,
     name: "Brofjorden"
   },
   %ExViva.Station{
     id: 24,
     latitude: 58.34285,
     longitude: 11.40125,
     name: "Brofjorden Tavla 1"
   },
   %ExViva.Station{
     id: 135,
     latitude: 58.2508,
     longitude: 11.2239,
     name: "Brofjordens Angöring"
   },
   %ExViva.Station{
     id: 33,
     latitude: 60.7315,
     longitude: 17.325833,
     name: "Bönan"
   },
   %ExViva.Station{
     id: 5, 
     latitude: 58.382367,
     longitude: 12.310783,
     name: "Dalbobron"
   },
   %ExViva.Station{
     id: 34,
     latitude: 59.184833,
     longitude: 17.642833,
     name: "E4 Bron Södertälje"
   },
   %ExViva.Station{
     id: 35,
     latitude: 60.728167,
     longitude: 17.557833,
     name: "Eggegrund"
   },
   %ExViva.Station{
     id: 168,
     latitude: 57.696567,
     longitude: 11.908833, 
     name: "Eriksberg (GBG Stad)"
   },
   %ExViva.Station{
     id: 119,
     latitude: 56.88462,
     longitude: 12.468391,
     name: "Falkenberg Vind"
   },
   %ExViva.Station{
     id: 36,
     latitude: 56.892,
     longitude: 12.4895,
     name: "Falkenberg Vst"
   },
   %ExViva.Station{
     id: 91,
     latitude: 55.56098,
     longitude: 12.809541,
     name: "Flinten 16"
   },
   %ExViva.Station{
     id: 86,
     latitude: 55.589379,
     longitude: 12.844475,
     name: "Flinten 7"
   },
   %ExViva.Station{
     id: 111,
     latitude: 55.518195,
     longitude: 12.744768,
     name: "Flinten SW"
   },
   %ExViva.Station{
     id: 12,
     latitude: 60.408611,
     longitude: 18.210833,
     name: "Forsmark"
   },
   %ExViva.Station{id: 22, latitude: 65.5718, longitude: 22.171, name: "Frej"},
   %ExViva.Station{
     id: 140,
     latitude: 59.3463,
     longitude: 18.12708,
     name: "Frihamnen (SH)"
   },
   %ExViva.Station{
     id: 39,
     latitude: 59.663757,
     longitude: 18.931997, 
     name: "Furusund"
   },
   %ExViva.Station{
     id: 158,
     latitude: 64.915833,
     longitude: 21.230555,
     name: "Furuögrund (SMHI)"
   },
   %ExViva.Station{
     id: 153,
     latitude: 62.349932,
     longitude: 17.578059,
     name: "Gubben"
   },
   %ExViva.Station{
     id: 40,
     latitude: 64.6633,
     longitude: 21.3167,
     name: "Gåsören"
   },
   %ExViva.Station{id: 41, latitude: 58.0983, longitude: 12.1506, name: "Göta"},
   %ExViva.Station{
     id: 42,
     latitude: 57.71441,
     longitude: 11.9675,
     name: "Götaälvbron"
   },
   %ExViva.Station{
     id: 43,
     latitude: 56.649783,
     longitude: 12.8425,
     name: "Halmstad"
   },
   %ExViva.Station{
     id: 113,
     latitude: 57.896333,
     longitude: 11.467167,
     name: "Hamneskär"
   },
   %ExViva.Station{id: 44, latitude: 60.17, longitude: 18.482, name: "Hargs Hamn"},
   %ExViva.Station{
     id: 45,
     latitude: 56.041167,
     longitude: 12.6845,
     name: "Helsingborg"
   },
   %ExViva.Station{
     id: 129,
     latitude: 56.018933,
     longitude: 12.697067,
     name: "Helsingborg Sydhamnen"
   },
   %ExViva.Station{
     id: 130,
     latitude: 56.025517,
     longitude: 12.691433,
     name: "Helsingborg Västhamnen"
   },
   %ExViva.Station{
     id: 167,
     latitude: 56.019992,
     longitude: 12.687072,
     name: "Helsingborg Öresund"
   },
   %ExViva.Station{
     id: 56,
     latitude: 59.533067,
     longitude: 17.008166,
     name: "Hjulstabron"
   },
   %ExViva.Station{
     id: 137,
     latitude: 56.920945,
     longitude: 18.150568,
     name: "Hoburg (SMHI)"
   },
   %ExViva.Station{
     id: 134,
     latitude: 63.695429,
     longitude: 20.347527,
     name: "Holmsund"
   },
   %ExViva.Station{id: 174, latitude: 63.3185, longitude: 19.1562, name: "Husum"},
   %ExViva.Station{
     id: 4,
     latitude: 58.603779,
     longitude: 17.315855,
     name: "Hävringe"
   },
   %ExViva.Station{
     id: 126,
     latitude: 57.8555,
     longitude: 12.0091,
     name: "Jordfallsbron"
   },
   %ExViva.Station{id: 58, latitude: 58.63418, longitude: 16.324758, ...},
   %ExViva.Station{id: 59, latitude: 65.788833, ...},
   %ExViva.Station{id: 161, ...},
   %ExViva.Station{...},
   ...
 ]}

Getting observations from a particaluar station:

iex(1)> Viva.get_station(86)
{:ok,
 %ExViva.StationSample{
   requested_at: #DateTime<2019-04-27 14:37:55.199841Z>,
   samples: [
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Vattenstånd",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :water_level,
       unit: "cm",
       updated_at: ~N[2019-04-27 16:35:00],
       value: -18.0,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Vattentemp",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :water_temperature,
       unit: "°C",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 8.2,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Vattentemp Botten",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :water_temperature, 
       unit: "°C",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 6.7,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 204,
       message: "",
       name: "Ström Yta",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :stream,
       unit: "knop",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 1.1,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 218,
       message: "",
       name: "Ström 4m",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :stream,
       unit: "knop",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 0.9,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 208,
       message: "",
       name: "Ström 2m",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :stream,
       unit: "knop",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 1.7,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Salthalt",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :salinity,
       unit: "‰",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 8.4,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Salthalt Botten",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :salinity,
       unit: "‰",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 24.8,
       water_level_reference: nil
     },
     %ExViva.Sample{
       calm: 0,
       heading: 0,
       message: "",
       name: "Densitet Botten",
       quality: "ok",
       station_id: 86,
       trend: "",
       type: :water_density,
       unit: "kg/m³",
       updated_at: ~N[2019-04-27 16:35:00],
       value: 1019.4,
       water_level_reference: nil
     }
   ],
   station_id: 86
 }}

About

Elixir API to get weather observations form the Swedish Maritime Adminstration (Sjöfartsverket)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages