Xcalibur.Weather.Models
1.1.5
dotnet add package Xcalibur.Weather.Models --version 1.1.5
NuGet\Install-Package Xcalibur.Weather.Models -Version 1.1.5
<PackageReference Include="Xcalibur.Weather.Models" Version="1.1.5" />
<PackageVersion Include="Xcalibur.Weather.Models" Version="1.1.5" />
<PackageReference Include="Xcalibur.Weather.Models" />
paket add Xcalibur.Weather.Models --version 1.1.5
#r "nuget: Xcalibur.Weather.Models, 1.1.5"
#:package Xcalibur.Weather.Models@1.1.5
#addin nuget:?package=Xcalibur.Weather.Models&version=1.1.5
#tool nuget:?package=Xcalibur.Weather.Models&version=1.1.5
Xcalibur.Weather.Models
A .NET 10 model library for weather, air quality, geocoding, astronomy, pollen, observations, current conditions, and weather alerts applications. It provides strongly-typed DTOs and domain models used to deserialize provider responses and represent current, hourly, and daily forecast data in a consistent way.
Created by: Joshua Arzt | Company: Xcalibur Systems, LLC.
📋 Table of Contents
Purpose
Xcalibur.Weather.Models is designed to:
- Provide standardized data models for weather applications
- Support integration with multiple provider APIs including Open-Meteo, Geocodio, OpenStreetMap, Astronomy services (IpGeo, SunriseSunset.io), Atmospore (pollen), observation providers (NWS, DWD, ECCC, JMA, METAR), and weather alert services (Meteoalarm, NWS, GDACS, Environment Canada, BOM, EMSC, DWD)
- Deliver strongly-typed DTOs for current weather, hourly forecasts, daily forecasts, air quality, geocoding, astronomy, pollen, observations, current conditions, and multi-source weather alert data
- Provide reusable forecast point models for application-level weather presentation
- Offer location and address models for forward geocoding and lookup scenarios
- Centralize weather-related preference enums and helper methods
Key Features
Forecast and Domain Models
- CurrentForecastPoint: Real-time conditions including temperature, humidity, apparent temperature, precipitation, wind, and related metrics
- HourlyForecastPoint: Hourly forecast data for temperature, dew point, humidity, precipitation, wind, and cloud coverage
- DailyForecastPoint: Daily forecast summaries including high/low temperatures, precipitation probability, and daily conditions
- AirQualityPoint: Air quality measurements with support for both US AQI and European AQI values, details, and pollutant metrics for display and analysis
- CurrentCondition: App-facing current condition model with merged weather metrics and source weighting support
- WeatherObservation: Observation model for station-based weather readings and visibility, humidity, pressure, and storm details
- WeatherRegion and ThunderStormCondition: Supporting observation and regional condition models
- SunMoonPoint: Sun and moon-related data for astronomy and daylight features
- AddressLocationModel: Application-facing location model for resolved addresses and coordinates
- PrecipitationTile and DoubleRange: Supporting models for precipitation display and value ranges
- PollenInformation: App-facing pollen forecast from Atmospore including daily breakdowns, pollen species counts, and location data
- WeatherAlertInformation: App-facing weather alert data from Google Weather Alerts API
- CombinedWeatherAlertInformation: Unified weather alert data from multiple sources (Meteoalarm, NWS, GDACS, Environment Canada, BOM, EMSC, DWD)
Provider Models
The library includes DTOs for the following providers:
- Open-Meteo: Current weather, hourly weather, daily weather, weather units, and air quality response models
- Geocodio: Input, response, result, and address component models for geocoding workflows
- OpenStreetMap / Nominatim: Search result and nested address models for location lookup scenarios
- Astronomy Services: IpGeo and SunriseSunset.io models for astronomy data, sunrise/sunset, twilight, moonrise, moonset, azimuth, and illumination
- Atmospore: Pollen forecast response models including species-level counts, location data, and metadata
- Observations Services:
- NWS: Station, point, cloud layer, and observation response models
- DWD: German observation and station models
- ECCC: Environment and Climate Change Canada station and observation models
- JMA: Japan Meteorological Agency AMEDAS observation and station models
- METAR: Aviation observation property models with numeric JSON conversion support
- Weather Alert Services:
- Meteoalarm: European severe weather warnings
- NWS (National Weather Service): US weather alerts and warnings
- GDACS: Global Disaster Alert and Coordination System
- Environment Canada: Canadian weather alerts (CAP format)
- BOM: Australian Bureau of Meteorology warnings
- EMSC: European-Mediterranean Seismological Centre earthquake data
- DWD: German Weather Service (Deutscher Wetterdienst) alerts
- Google Weather Alerts API: Alert response, alert model, alert title, and data source models
Utilities and Preferences
- AqiValueHelper: Maps both US AQI and European AQI values to readable descriptions and health guidance
- SecurityHelper: Shared security-oriented helper functionality
- Preferences enums: Theme, temperature, soil moisture, time format, and distance units
Included Types
- Core models:
AddressLocationModelAirQualityPointCurrentCondition
DetailedForecastPointDailyForecastPointDoubleRangeGridpointExtractedValuesHourlyForecastPointPollenDailyEntryPollenInformationPollenItemPrecipitationTileSunMoonPointThunderStormCondition
CombinedWeatherAlertInformationWeatherObservation
WeatherAlertInformationWeatherAlertItemWeatherRegion
- Base model:
BaseForecastPoint
- Preference enums:
ThemeSelectionsTemperatureUnitsSoilMoistureUnitsTimeFormatUnitsDistanceUnits
- Service model groups:
Services.OpenMeteo.*Services.Geocodio.*Services.OpenStreetMap.*Services.Astronomy.*Services.Atmospore.Response.*Services.GoogleWeatherAlerts.Response.*Services.Observations.*
Services.WeatherAlert.Bom.*Services.WeatherAlert.Dwd.*Services.WeatherAlert.Emsc.*Services.WeatherAlert.EnvironmentCanada.*Services.WeatherAlert.Gdacs.*Services.WeatherAlert.Meteoalarm.*Services.WeatherAlert.Nws.*
Technology
- Target Framework: .NET 10
- Current Package Version: 1.1.5
- Dependencies:
- Xcalibur.Extensions.MVVM.V2 (v1.0.6)
- Features:
- Implicit usings enabled
- Nullable reference types enabled
- JSON serialization support
- NuGet package generation on Release build
- README, license, icon, and symbols package support
- High-performance regex optimizations using source-generated patterns
📦 Installation
Install via NuGet Package Manager:
dotnet add package Xcalibur.Weather.Models
Or via Package Manager Console:
Install-Package Xcalibur.Weather.Models
Or add to your project file:
<PackageReference Include="Xcalibur.Weather.Models" Version="1.1.5" />
Use Cases
This library is ideal for:
- Weather forecast applications
- Shared model packages for weather service layers and client apps
- Geocoding and location-aware weather applications
- Air quality monitoring dashboards
- Current condition aggregation and observation dashboards
- Astronomy, daylight, and sun/moon tracking features
- Smart home, environmental, and agricultural solutions
Project Structure
Xcalibur.Weather.Models/
├── Implementation/ # App-facing models
│ ├── AirQuality/ # Air quality models
│ ├── Base/ # Base forecast classes
│ ├── Condition/ # Current condition models
│ ├── Geocoding/ # Address and location models
│ ├── Observations/ # Observation and regional models
│ ├── Pollen/ # Pollen information models
│ ├── Precipitation/ # Precipitation tile models
│ ├── SunMoon/ # Sun and moon data models
│ ├── WeatherAlerts/ # Alert information models
│ ├── WeatherForecast/ # Forecast point models
│ └── Preferences.cs # Preference enums
├── Services/ # Provider-specific DTOs
│ ├── Astronomy/ # Astronomy response models
│ ├── Atmospore/ # Atmospore pollen API
│ ├── Geocodio/ # Geocodio geocoding
│ ├── GoogleWeatherAlerts/ # Google Weather Alerts API
│ ├── OpenMeteo/ # Open-Meteo weather API
│ ├── OpenStreetMap/ # OpenStreetMap / Nominatim
│ ├── Observations/ # Observation provider DTOs
│ └── WeatherAlert/ # Multi-source weather alerts
│ ├── Bom/ # Australian BOM
│ ├── Dwd/ # German DWD
│ ├── Emsc/ # EMSC earthquakes
│ ├── EnvironmentCanada/ # Canadian alerts
│ ├── Gdacs/ # GDACS global disasters
│ ├── Meteoalarm/ # European Meteoalarm
│ └── Nws/ # US National Weather Service
├── Helpers/ # Utility and helper classes
└── Testing/ # Testing utilities
Latest Updates
v1.1.5
- Packaged the latest observation and air-quality improvements.
v1.1.4
- Additional maintenance updates and package revisions
v1.1.3
- Fixed
MetarProperties.Visibto accept numeric JSON tokens usingNullableDoubleFromJsonConverter - Improved METAR observation deserialization reliability
v1.1.2
- Improved compatibility for hourly air quality model consumption in app-facing models
v1.1.1
- Added
HourlyAirQualityModelsupport toAirQualityPointconstructor and mapping logic
v1.1.0
- Added support documentation for current condition and observation model areas
v1.0.20
- AQI Enhancements: Updated air quality index calculations to support both US and European metrics
- Added support for US AQI (Air Quality Index) standards
- Added support for European CAQI (Common Air Quality Index) standards
- Added AQI descriptions and detail handling for both regional models
- Improved flexibility for regional air quality reporting
- Enhanced air quality data model compatibility
v1.0.19
- Added relative humidity minimum and maximum values to daily forecast models
- Restored
DelegatingHandlerStubtesting utility - Included several maintenance fixes and reliability improvements
v1.0.18
- Several improvements and bug fixes
- Enhanced stability and reliability
v1.0.17
- Minor updates and refinements
v1.0.16
- Additional bug fixes and improvements
v1.0.15
- Bug Fixes: Added comprehensive index out of range protections
HourlyForecastPoint.Mapnow validates all array indices before access- Guards against null arrays and negative indices
- Safe handling of mismatched array lengths in API responses
- Properties gracefully default to
nullwhen data unavailable
- Improved robustness for partial or malformed API responses
v1.0.14
- Updated dependencies and maintenance updates
v1.0.13
- Additional improvements and refinements
v1.0.12
- Breaking Change: Retired
WeatherCodeproperty for multi-language compatibility- Weather code descriptions are language-specific and should be handled by localization services
- Consumers should use raw weather code values with their own localization
- Improved model flexibility for international applications
v1.0.11
- Performance Optimizations for
AlertMapperhelper class:- Migrated all regex patterns to source-generated
[GeneratedRegex](41 patterns) - Replaced
ToUpperInvariant()withStringComparison.OrdinalIgnoreCasefor zero-allocation comparisons - Removed redundant
Contains()calls in favor of exactEquals()matching - Optimized
MapCategoryto prioritize exact matches before fallback substring matching - Performance improvements: ~10-100x faster regex matching, ~20-40% faster string comparisons, reduced GC pressure
- Migrated all regex patterns to source-generated
- Updated alert mapping methods for CAP (Common Alerting Protocol) standard compliance
- Enhanced property descriptions for weather alert models
v1.0.10
- Additional property descriptions and documentation improvements
v1.0.9
- Minor bug fixes and refinements
v1.0.8
- Internal improvements and updates
v1.0.7
- Added multi-source weather alert aggregation support
- Introduced
CombinedWeatherAlertInformationfor unified alert handling across multiple providers - Enhanced alert service provider coverage
v1.0.6
- Major Refactoring: Reorganized project structure
- Moved app-facing models to
Implementation/namespace - Moved provider DTOs to
Services/namespace
- Moved app-facing models to
- Added Atmospore Pollen API: Replaced Google Pollen with Atmospore
PollenResponsePollenEntryResponsePollenSpeciesEntryResponsePollenMetaResponsePollenLocationResponse
- Added Multiple Weather Alert Services:
- Meteoalarm: European severe weather alerts
- NWS (National Weather Service): US alerts with CAP format
- GDACS: Global disaster coordination system
- Environment Canada: Canadian weather alerts (CAP/XML)
- BOM: Australian Bureau of Meteorology warnings
- EMSC: European-Mediterranean earthquake data
- DWD: German Weather Service alerts
- New Implementation Models:
CombinedWeatherAlertInformation: Unified multi-source alertsDetailedForecastPoint: Enhanced forecast detailsGridpointExtractedValues: Gridpoint data extraction- Refactored pollen models:
PollenDailyEntry,PollenItem
- Removed Legacy Models: Google Pollen API models removed in favor of Atmospore
v1.0.5
- Added Google Weather Alerts API provider models:
WeatherAlertsResponseWeatherAlertModelAlertTitleModelAlertDataSourceModel
- Added app-facing alert models:
WeatherAlertInformationWeatherAlertItem
- Bumped
Xcalibur.Extensions.MVVM.V2dependency to v1.0.5
v1.0.4
- Added app-facing pollen models:
PollenInformationPollenDailyInformationPollenTypeInformationPollenPlantInformation
v1.0.3
- Added Google Pollen API forecast models:
PollenForecastResponseDailyInfoModelForecastDateModelIndexInfoModelPlantDescriptionModelPlantInfoModelPollenTypeInfoModelColorModel
v1.0.2
- Added SunriseSunset.io response models:
SunriseSunsetResponseSunriseSunsetResultModel
- Added OpenStreetMap / Nominatim models:
OpenStreetMapResultOpenStreetMapAddress
- Updated NuGet packaging metadata for README, license, icon, symbols, and Release build package generation
📄 License
This project is licensed under the Apache License 2.0. See the LICENSE-2.0.txt file included with the package for details.
Copyright © 2006 - 2026, Xcalibur Systems, LLC - All Rights Reserved
🔗 Related Projects
- Xcalibur.Weather.Services - HTTP client services for weather APIs (GitHub)
- Xcalibur.Weather.Helpers - Utility functions and conversion helpers (GitHub)
Part of the Xcalibur Weather ecosystem for comprehensive weather data integration.
Contributions are welcome! Please feel free to submit issues or pull requests to improve the library.
Author
Joshua Arzt
Xcalibur Systems, LLC
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Xcalibur.Extensions.MVVM.V2 (>= 1.0.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Xcalibur.Weather.Models:
| Package | Downloads |
|---|---|
|
Xcalibur.Weather.Services
A comprehensive .NET library providing HTTP client services for weather-related APIs. Seamless integration with multiple weather data providers including Open-Meteo, Geocodio, IpGeolocation.io, Atmospore, SunriseSunset.io, and OpenStreetMap for weather forecasting, geocoding, air quality monitoring, pollen insights, multi-source weather alerts, and astronomical data. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.5 | 79 | 8/16/2026 |
| 1.1.3 | 79 | 8/15/2026 |
| 1.1.0 | 86 | 8/13/2026 |
| 1.0.21 | 179 | 8/4/2026 |
| 1.0.20 | 101 | 8/4/2026 |
| 1.0.18 | 148 | 7/31/2026 |
| 1.0.15 | 170 | 7/28/2026 |
| 1.0.14 | 92 | 7/28/2026 |
| 1.0.13 | 184 | 7/7/2026 |
| 1.0.12 | 139 | 7/6/2026 |
| 1.0.11 | 147 | 7/3/2026 |
| 1.0.8 | 178 | 7/2/2026 |
| 1.0.7 | 183 | 6/18/2026 |
| 1.0.6 | 162 | 6/17/2026 |
| 1.0.5 | 140 | 5/19/2026 |
Packaged the latest observation and air-quality improvements