OpenMeteo.dotnet 0.1.48

There is a newer version of this package available.
See the version list below for details.
dotnet add package OpenMeteo.dotnet --version 0.1.48
NuGet\Install-Package OpenMeteo.dotnet -Version 0.1.48
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OpenMeteo.dotnet" Version="0.1.48" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OpenMeteo.dotnet --version 0.1.48
#r "nuget: OpenMeteo.dotnet, 0.1.48"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OpenMeteo.dotnet as a Cake Addin
#addin nuget:?package=OpenMeteo.dotnet&version=0.1.48

// Install OpenMeteo.dotnet as a Cake Tool
#tool nuget:?package=OpenMeteo.dotnet&version=0.1.48

🌡️🌤️ Open-Meteo Dotnet Library

build and test GitHub license Nuget

A .Net Standard library for the Open-Meteo API.

❕ Information

This project is still in development. There will be major changes in the codebase.

🎯 Roadmap

  • Enums for HourlyOptions & DailyOptions
  • Documentation
  • Unit tests

🔨 Installation/Build

NuGet

NuGet Package

Use NuGet Package Manager GUI. Or use NuGet CLI:

dotnet add package OpenMeteo.dotnet

Build

Alternatively you can build this library on your own.

  1. Clone this repo:
git clone https://github.com/AlienDwarf/open-meteo-dotnet
  1. Open the project and build it. The build process will create a .dll file in /bin/[CONFIGURATION]/netstandard2.1/

  2. Add a reference in your own project to the .dll in your own project.

  3. Add using OpenMeteo; to your class.

💻 Usage

Zero config example:

using OpenMeteo;

static void Main()
{
    RunAsync().GetAwaiter().GetResult();
}

static async Task RunAsync()
{
    OpenMeteoClient client = new OpenMeteoClient();
    var weatherData = await client.QueryAsync("Tokyo");
    Console.WriteLine("Weather in Tokyo: " + weatherData.Current_Weather.Temperature + "°C");
    
    // Output: "Weather in Tokyo: 28.1°C
}

Adding options:

using OpenMeteo;

static void Main()
{
    RunAsync().GetAwaiter().GetResult();
}

static async Task RunAsync()
{
    OpenMeteoClient client = new OpenMeteoClient();
    WeatherForecastOptions options = new WeatherForecastOptions();
    options.Current_Weather = true;
    options.Latitude = 35.6895f; 
    options.Longitude = 139.69171f; // For Tokyo

    WeatherForecast weatherData = await client.QueryAsync(options);
    Console.WriteLine("Weather in Tokyo: " + weatherData.CurrentWeather.Temperature + "°C");

    // Output: "Weather in Tokyo: 28.1°C
}

Getting Geocoding API data and reuse it for weather forecast:

using OpenMeteo;

static void Main()
{
    RunAsync.GetAwaiter().GetResult();
}

static async Task RunAsync()
{
    OpenMeteoClient client = new OpenMeteoClient();
    GeocodingOptions geocodingOptions = new OpenMeteo.GeocodingOptions("Tokyo");
    var cityDataResults = await client.GetCityGeocodingDataAsync(geocodingOptions);
    var cityData = cityDataResults.Cities[0];

    Console.WriteLine(cityData.Name + "is a city in " + cityData.Country + "with a population of " + cityData.Population + " people.");
    // or Console.WriteLine(cityDataResults.Cities[0].Name + " is a city in " + cityData.Cities[0].Country + " with a population of " + cityData.Cities[0].Population + " people.");
    // Output: "Tokyo is a city in Japan with a population of 8336599 people."

    var weatherData = await client.QueryAsync(geocodingOptions);
    Console.WriteLine("Weather in " + cityData.Name + "is " + weatherData.CurrentWeather.Temperature + "°C");
    
    // Output: Weather in Tokyo is 25°C.
}

License

This project is open-source under the MIT license.

Appendix

This library uses the public and free available Open-Meteo API servers. See also:

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 1,049 10/21/2023
0.2.8 679 5/3/2023
0.2.6 252 3/19/2023
0.2.3 1,214 2/23/2023
0.2.0 292 2/4/2023
0.1.82 528 9/10/2022
0.1.81 383 9/3/2022
0.1.79 380 8/30/2022
0.1.60 374 8/30/2022
0.1.49 397 8/28/2022
0.1.48 391 8/28/2022
0.1.42 355 8/25/2022