openmeteo

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2023 License: MIT Imports: 6 Imported by: 0

README

Open-Meteo for Golang

Open-Meteo is an open-source weather API with free access for non-commercial use. No API key is required. You can use it immediately!

Install

go get github.com/innotechdevops/openmeteo

How to use

API Document https://open-meteo.com/en/docs

param := openmeteo.Parameter{
    Latitude:       openmeteo.Float32(13.7248785),
    Longitude:      openmeteo.Float32(100.4683022),
    Hourly:         &[]string{
        openmeteo.HourlyTemperature2m,
        openmeteo.HourlyRelativeHumidity2m,
        openmeteo.HourlyWindSpeed10m,
    },
    CurrentWeather: openmeteo.Bool(true),
}

m := openmeteo.New()
resp, err := m.Execute(param)

Output

{
  "latitude":13.75,
  "longitude":100.5,
  "generationtime_ms":0.18894672393798828,
  "utc_offset_seconds":0,
  "timezone":"GMT",
  "timezone_abbreviation":"GMT",
  "elevation":5.0,
  "current_weather":{
    "temperature":30.6,
    "windspeed":5.6,
    "winddirection":195.0,
    "weathercode":3,
    "is_day":0,
    "time":"2023-06-02T15:00"
  },
  "hourly_units":{
    "time":"iso8601",
    "temperature_2m":"°C",
    "relativehumidity_2m":"%",
    "windspeed_10m":"km/h"
  },
  "hourly":{
    "time":["2023-06-02T00:00"],
    "temperature_2m":[28.8],
    "relativehumidity_2m":[77],
    "windspeed_10m":[3.3]
  }
}

Documentation

Index

Constants

View Source
const (
	CurrentTemperature2m            = "temperature_2m"
	CurrentRelativeHumidity2m       = "relativehumidity_2m"
	CurrentDewPoint2m               = "dewpoint_2m"
	CurrentApparentTemperature      = "apparent_temperature"
	CurrentPressureMsl              = "pressure_msl"
	CurrentSurfacePressure          = "surface_pressure"
	CurrentCloudCover               = "cloudcover"
	CurrentCloudCoverLow            = "cloudcover_low"
	CurrentCloudCoverMid            = "cloudcover_mid"
	CurrentCloudCoverHigh           = "cloudcover_high"
	CurrentWindSpeed10m             = "windspeed_10m"
	CurrentWindSpeed80m             = "windspeed_80m"
	CurrentWindSpeed120m            = "windspeed_120m"
	CurrentWindSpeed180m            = "windspeed_180m"
	CurrentWindDirection10m         = "winddirection_10m"
	CurrentWindDirection80m         = "winddirection_80m"
	CurrentWindDirection120m        = "winddirection_120m"
	CurrentWindDirection180m        = "winddirection_180m"
	CurrentWindGusts10m             = "windgusts_10m"
	CurrentShortwaveRadiation       = "shortwave_radiation"
	CurrentDirectRadiation          = "direct_radiation"
	CurrentDirectNormalIrradiance   = "direct_normal_irradiance"
	CurrentDiffuseRadiation         = "diffuse_radiation"
	CurrentVaporPressureDeficit     = "vapor_pressure_deficit"
	CurrentCape                     = "cape"
	CurrentEvapotranspiration       = "evapotranspiration"
	CurrentEt0FaoEvapotranspiration = "et0_fao_evapotranspiration"
	CurrentPrecipitation            = "precipitation"
	CurrentSnowfall                 = "snowfall"
	CurrentPrecipitationProbability = "precipitation_probability"
	CurrentRain                     = "rain"
	CurrentShowers                  = "showers"
	CurrentWeatherCode              = "weather_code"
	CurrentSnowDepth                = "snow_depth"
	CurrentFreezingLevelHeight      = "freezinglevel_height"
	CurrentVisibility               = "visibility"
	CurrentSoilTemperature0cm       = "soil_temperature_0cm"
	CurrentSoilTemperature6cm       = "soil_temperature_6cm"
	CurrentSoilTemperature18cm      = "soil_temperature_18cm"
	CurrentSoilTemperature54cm      = "soil_temperature_54cm"
	CurrentSoilMoisture01cm         = "soil_moisture_0_1cm"
	CurrentSoilMoisture13cm         = "soil_moisture_1_3cm"
	CurrentSoilMoisture39cm         = "soil_moisture_3_9cm"
	CurrentSoilMoisture927cm        = "soil_moisture_9_27cm"
	CurrentSoilMoisture2781cm       = "soil_moisture_27_81cm"
	CurrentIsDay                    = "is_day"
)

Note: Current conditions are based on 15-minutely weather model data. Every weather variable available in hourly data, is available as current condition as well.

View Source
const (
	DailyTemperature2mMax             = "temperature_2m_max"
	DailyTemperature2mMin             = "temperature_2m_min"
	DailyApparentTemperatureMax       = "apparent_temperature_max"
	DailyApparentTemperatureMin       = "apparent_temperature_min"
	DailyPrecipitationSum             = "precipitation_sum"
	DailyRainSum                      = "rain_sum"
	DailyShowersSum                   = "showers_sum"
	DailySnowfallSum                  = "snowfall_sum"
	DailyPrecipitationHours           = "precipitation_hours"
	DailyPrecipitationProbabilityMax  = "precipitation_probability_max"
	DailyPrecipitationProbabilityMin  = "precipitation_probability_min"
	DailyPrecipitationProbabilityMean = "precipitation_probability_mean"
	DailyWeatherCode                  = "weathercode"
	DailySunrise                      = "sunrise"
	DailySunset                       = "sunset"
	DailyWindSpeed10mMax              = "windspeed_10m_max"
	DailyWindGusts10mMax              = "windgusts_10m_max"
	DailyWindDirection10mDominant     = "winddirection_10m_dominant"
	DailyShortwaveRadiationSum        = "shortwave_radiation_sum"
	DailyEt0FaoEvapotranspiration     = "et0_fao_evapotranspiration"
	DailyUvIndexMax                   = "uv_index_max"
	DailyUvIndexClearSkyMax           = "uv_index_clear_sky_max"
)
View Source
const (
	HourlyTemperature2m            = "temperature_2m"
	HourlyRelativeHumidity2m       = "relativehumidity_2m"
	HourlyDewPoint2m               = "dewpoint_2m"
	HourlyApparentTemperature      = "apparent_temperature"
	HourlyPressureMsl              = "pressure_msl"
	HourlySurfacePressure          = "surface_pressure"
	HourlyCloudCover               = "cloudcover"
	HourlyCloudCoverLow            = "cloudcover_low"
	HourlyCloudCoverMid            = "cloudcover_mid"
	HourlyCloudCoverHigh           = "cloudcover_high"
	HourlyWindSpeed10m             = "windspeed_10m"
	HourlyWindSpeed80m             = "windspeed_80m"
	HourlyWindSpeed120m            = "windspeed_120m"
	HourlyWindSpeed180m            = "windspeed_180m"
	HourlyWindDirection10m         = "winddirection_10m"
	HourlyWindDirection80m         = "winddirection_80m"
	HourlyWindDirection120m        = "winddirection_120m"
	HourlyWindDirection180m        = "winddirection_180m"
	HourlyWindGusts10m             = "windgusts_10m"
	HourlyShortwaveRadiation       = "shortwave_radiation"
	HourlyDirectRadiation          = "direct_radiation"
	HourlyDirectNormalIrradiance   = "direct_normal_irradiance"
	HourlyDiffuseRadiation         = "diffuse_radiation"
	HourlyVaporPressureDeficit     = "vapor_pressure_deficit"
	HourlyCape                     = "cape"
	HourlyEvapotranspiration       = "evapotranspiration"
	HourlyEt0FaoEvapotranspiration = "et0_fao_evapotranspiration"
	HourlyPrecipitation            = "precipitation"
	HourlySnowfall                 = "snowfall"
	HourlyPrecipitationProbability = "precipitation_probability"
	HourlyRain                     = "rain"
	HourlyShowers                  = "showers"
	HourlyWeatherCode              = "weather_code"
	HourlySnowDepth                = "snow_depth"
	HourlyFreezingLevelHeight      = "freezinglevel_height"
	HourlyVisibility               = "visibility"
	HourlySoilTemperature0cm       = "soil_temperature_0cm"
	HourlySoilTemperature6cm       = "soil_temperature_6cm"
	HourlySoilTemperature18cm      = "soil_temperature_18cm"
	HourlySoilTemperature54cm      = "soil_temperature_54cm"
	HourlySoilMoisture01cm         = "soil_moisture_0_1cm"
	HourlySoilMoisture13cm         = "soil_moisture_1_3cm"
	HourlySoilMoisture39cm         = "soil_moisture_3_9cm"
	HourlySoilMoisture927cm        = "soil_moisture_9_27cm"
	HourlySoilMoisture2781cm       = "soil_moisture_27_81cm"
)

Variables

This section is empty.

Functions

func Bool

func Bool(b bool) *bool

func Float32

func Float32(f float32) *float32

func Int

func Int(i int) *int

func String

func String(s string) *string

func WeatherCodeName

func WeatherCodeName(code int) string

Types

type OpenMeteo

type OpenMeteo interface {
	Execute(parameter Parameter) (string, error)
}

func New

func New(args ...callx.CallX) OpenMeteo

type Parameter

type Parameter struct {
	Latitude          *float32  `json:"latitude"`
	Longitude         *float32  `json:"longitude"`
	Hourly            *[]string `json:"hourly"`
	Elevation         *float32  `json:"elevation"`
	Daily             *[]string `json:"daily"`
	Current           *[]string `json:"current"`
	CurrentWeather    *bool     `json:"current_weather"`
	TemperatureUnit   *string   `json:"temperature_unit"`
	WindSpeedUnit     *string   `json:"windspeed_unit"`
	PrecipitationUnit *string   `json:"precipitation_unit"`
	TimeFormat        *string   `json:"timeformat"`
	Timezone          *string   `json:"timezone"`
	PastDays          *int      `json:"past_days"`
	ForecastDays      *int      `json:"forecast_days"`
	StartDate         *string   `json:"start_date"`
	EndDate           *string   `json:"end_date"`
	Models            *[]string `json:"models"`
	CellSelection     *string   `json:"cell_selection"`
}

func (Parameter) ToQuery

func (p Parameter) ToQuery() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL