ambient-weather / api-docs

AmbientWeather.net API Documentation
65 stars 43 forks source link

API Metadata inquiry #28

Closed ChaseDRedmon closed 3 years ago

ChaseDRedmon commented 3 years ago

Hello,

I'm working on a .NET implementation of the Ambient Weather API (located here: https://github.com/ChaseDRedmon/Weathered/tree/release/Weathered.API). Right now the wrapper isn't complete or anything, but I have a couple of questions regarding the Ambient Weather API.

Most of the libraries that I see are wrappers around the endpoint itself and I wanted to try and go a little bit further and include some helper methods allowing the user to selectively query certain time ranges, querying the partial/full history of a device, getting rolling averages for metrics, etc.

One question that I have is on what date was this API created? Or what is the earliest date that any weather station began submitting information to the service? Is Ambient Weather API 5 years old? Or 10 years old?

I'm trying to implement a binary search algorithm that would find the first date that a weather station came online and began publishing data to the service, so that if a user wanted to fetch the first month of data for their weather station, they could. The API seems to be design to walk backwards from the current date to a previous date. Finding the last 6 months of data is easy to do by walking backwards each day for 6 months. But finding the first x number of months is trickier because you may not know what date the weather station began sending information.

Knowing the first date that the Ambient Weather API began collecting information from personal weather stations would help me optimize this search algorithm a little bit more.

Or, If it's not too much to ask, do you think it would be possible to add a new field to the info object of the Device Data endpoint? (This endpoint here: https://api.ambientweather.net/v1/devices?applicationKey=&apiKey= that returns the metadata for all devices listed under the API Key)

It would be neat to have a firstSeenDate field in the info object for a weather station, like below.

"info": {
    "name": "My Weather Station",
        "firstSeenDate": <insert first seen/event date in UTC for this respective PWS>
    "coords": {
        "coords": {
            "lat": <Snip>,
            "lon": -<Snip>
        },
        "address": "<Snip>",
        "location": "<Snip>",
        "elevation": <Snip>,
        "geo": {
            "type": "Point",
            "coordinates": [
                -0.00,
                0.00
            ]
        }
    }
}

Cheers.

owise1 commented 3 years ago

Hi,

ambientweather.net only promises to retain data for a year. in practice sometimes older data is available, but I'd advise designing your code with that year in mind.

I'll add your suggestion for a firstSeenDate to the feature requests. I believe the API is set to get some love in the next quarter so this could happen.

ChaseDRedmon commented 3 years ago

Thank you very much!

I was mainly wonder what date ranges of data was saved. If the API is generally designed to store 1 years worth of data, then I will follow this guideline and write the library around that.

The reasoning behind firstSeenDate was to give the library a static date where I could walk AmbientWeather rest API in order to fetch information.