{"id":3325,"name":"Weather Stations","description":"A list of public weather stations everyone can edit and share.","url":"https://github.com/meteostat/weather-stations","last_synced_at":"2026-04-07T17:01:04.946Z","repository":{"id":40364685,"uuid":"198836460","full_name":"meteostat/weather-stations","owner":"meteostat","description":"An open-source directory of global weather stations.","archived":false,"fork":false,"pushed_at":"2026-03-15T04:29:29.000Z","size":467556,"stargazers_count":78,"open_issues_count":8,"forks_count":23,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-03-24T05:23:40.282Z","etag":null,"topics":["climate","data-science","json","meteostat","weather","weather-stations"],"latest_commit_sha":null,"homepage":"https://dev.meteostat.net","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/meteostat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"meteostat","patreon":"meteostat","custom":["https://www.paypal.com/donate?hosted_button_id=MQ67WRDC8EW38"]}},"created_at":"2019-07-25T13:25:56.000Z","updated_at":"2026-03-23T22:10:24.000Z","dependencies_parsed_at":"2022-08-09T18:23:06.991Z","dependency_job_id":"fa3f1f15-d70b-47bf-8f88-a9aca9c72c43","html_url":"https://github.com/meteostat/weather-stations","commit_stats":{"total_commits":466,"total_committers":13,"mean_commits":35.84615384615385,"dds":"0.32188841201716734","last_synced_commit":"5813274ecefd0d8b9d6527ca0cf56908fb01cb21"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/meteostat/weather-stations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meteostat","download_url":"https://codeload.github.com/meteostat/weather-stations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31441057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T15:22:31.103Z","status":"ssl_error","status_checked_at":"2026-04-05T15:22:00.205Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"meteostat","name":"Meteostat","uuid":"29773680","kind":"organization","description":"The Weather's Record Keeper","email":"info@meteostat.net","website":"https://meteostat.net","location":null,"twitter":"meteost","company":null,"icon_url":"https://avatars.githubusercontent.com/u/29773680?v=4","repositories_count":14,"last_synced_at":"2024-04-12T23:41:58.133Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/meteostat","funding_links":[],"total_stars":469,"followers":115,"following":0,"created_at":"2022-11-14T05:24:13.163Z","updated_at":"2024-04-12T23:42:01.210Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meteostat","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/meteostat/repositories"},"packages":[],"commits":{"id":1319894,"full_name":"meteostat/weather-stations","default_branch":"master","total_commits":548,"total_committers":16,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":34.25,"dds":0.4233576642335767,"past_year_total_commits":66,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":16.5,"past_year_dds":0.0757575757575758,"last_synced_at":"2026-03-21T09:03:39.091Z","last_synced_commit":"872a7b7ca6c343ed76cf7da84eaf913b2cb4109e","created_at":"2023-09-11T14:49:02.101Z","updated_at":"2026-03-21T09:03:15.364Z","committers":[{"name":"Julia Lamprecht","email":"72379694+mrsjuli","login":"mrsjuli","count":316},{"name":"clampr","email":"christian.lamprecht@aol.de","login":"clampr","count":212},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":3},{"name":"ghostrider","email":"ustaudinger@gmail.com","login":"ghostrider","count":2},{"name":"Michiel Staessen","email":"staessenmichiel@gmail.com","login":"mstaessen","count":2},{"name":"Ida","email":"idae@tutanota.com","login":"ida","count":2},{"name":"Andreas Motl","email":"andreas.motl@elmyra.de","login":"amotl","count":2},{"name":"z1ga","email":"z1ga","login":"z1ga","count":1},{"name":"simberaj","email":"simbera.jan@gmail.com","login":"simberaj","count":1},{"name":"Tyler M. Kontra","email":"46075030+ttymck","login":"ttymck","count":1},{"name":"Siddhartha Khatsuriya","email":"sidforyou14@gmail.com","login":"SiddharthKhatsuriya","count":1},{"name":"Michael Haberler","email":"mail17@mah.priv.at","login":"mhaberler","count":1},{"name":"Jacob Ponitz","email":"jakeponitz@gmail.com","login":"jakePonitz","count":1},{"name":"Ben Sjoberg","email":"bensjoberg@gmail.com","login":"BenSjoberg","count":1},{"name":"Andrew Haupt","email":"ajhaupt7@gmail.com","login":"ajhaupt7","count":1},{"name":"Meteostat","email":"info@meteostat.net","login":null,"count":1}],"past_year_committers":[{"name":"clampr","email":"christian.lamprecht@aol.de","login":"clampr","count":61},{"name":"Copilot","email":"198982749+Copilot","login":"Copilot","count":3},{"name":"Jacob Ponitz","email":"jakeponitz@gmail.com","login":"jakePonitz","count":1},{"name":"Ben Sjoberg","email":"bensjoberg@gmail.com","login":"BenSjoberg","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-05T00:00:09.419Z","repositories_count":6211036,"commits_count":924727209,"contributors_count":35739562,"owners_count":1144324,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"meteostat/weather-stations","html_url":"https://github.com/meteostat/weather-stations","last_synced_at":"2026-03-15T06:00:21.679Z","status":"error","issues_count":18,"pull_requests_count":90,"avg_time_to_close_issue":16997846.375,"avg_time_to_close_pull_request":12230623.137931034,"issues_closed_count":8,"pull_requests_closed_count":87,"pull_request_authors_count":10,"issue_authors_count":12,"avg_comments_per_issue":1.4444444444444444,"avg_comments_per_pull_request":0.12222222222222222,"merged_pull_requests_count":16,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":3,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":56531.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":2,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":0.6666666666666666,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2023-09-11T14:49:30.345Z","updated_at":"2026-03-15T06:00:21.680Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/meteostat%2Fweather-stations/issues","issue_labels_count":{"bug":7,"help wanted":4,"enhancement":3,"good first issue":3},"pull_request_labels_count":{"enhancement":5},"issue_author_associations_count":{"NONE":10,"MEMBER":4,"CONTRIBUTOR":4},"pull_request_author_associations_count":{"CONTRIBUTOR":77,"MEMBER":12,"NONE":1},"issue_authors":{"clampr":4,"tmkontra":2,"mhaberler":2,"ricl":2,"Meywether":1,"sjliu68":1,"MichieldeB":1,"Raysphere24":1,"luciangruiaro":1,"guidocioni":1,"paapu88":1,"pallas314":1},"pull_request_authors":{"mrsjuli":69,"clampr":12,"amotl":2,"Copilot":1,"simberaj":1,"mhaberler":1,"SiddharthKhatsuriya":1,"z1ga":1,"tmkontra":1,"BenSjoberg":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-17T00:00:06.634Z","repositories_count":13768938,"issues_count":34678532,"pull_requests_count":113282680,"authors_count":11205778,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":1,"MEMBER":1,"NONE":1},"past_year_issue_authors":{},"past_year_pull_request_authors":{"BenSjoberg":1,"clampr":1,"Copilot":1},"maintainers":[{"login":"clampr","count":16,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/clampr"}],"active_maintainers":[{"login":"clampr","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/clampr"}]},"events":{"total":{"DeleteEvent":2,"PullRequestEvent":10,"ForkEvent":3,"IssuesEvent":10,"WatchEvent":14,"IssueCommentEvent":6,"PushEvent":62,"CreateEvent":1},"last_year":{"DeleteEvent":2,"PullRequestEvent":10,"ForkEvent":2,"IssuesEvent":8,"WatchEvent":9,"IssueCommentEvent":1,"PushEvent":41,"CreateEvent":1}},"keywords":["climate","data-science","json","meteostat","weather","weather-stations"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-09T18:23:06.429Z","updated_at":"2022-08-09T18:23:06.429Z","repository_link":"https://github.com/meteostat/weather-stations/blob/main/requirements.txt","dependencies":[{"id":941309159,"package_name":"meteostat","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":941309160,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-08-09T18:23:06.667Z","updated_at":"2022-08-09T18:23:06.667Z","repository_link":"https://github.com/meteostat/weather-stations/blob/main/setup.py","dependencies":[{"id":941313057,"package_name":"meteostat","ecosystem":"pypi","requirements":"==1.5.7","direct":true,"kind":"runtime","optional":false}]}],"score":7.226936018493289,"created_at":"2023-09-11T14:32:22.802Z","updated_at":"2026-04-07T17:01:05.089Z","avatar_url":"https://github.com/meteostat.png","language":"Python","category":"Atmosphere","sub_category":"Meteorological Observation and Forecast","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Weather Stations\n\nA weather station is a location where meteorological data is measured. Most countries operate public weather station networks in order to monitor weather and climate. This repository provides a list of public weather stations everyone can contribute to. The data is maintained by [Meteostat](https://meteostat.net).\n\nYou can download the list of weather stations, including Meteostat inventory data, in JSON format:\n\n* [**Full dump**](https://bulk.meteostat.net/v2/stations/full.json.gz) with all weather stations\n* [**Lite dump**](https://bulk.meteostat.net/v2/stations/lite.json.gz) with active weather stations only\n\nAdditional information about the Meteostat bulk data interface is available in the [documentation](https://dev.meteostat.net/bulk).\n\n## Data Structure\n\nThe `stations` directory contains one JSON file per weather station. The files are named after the station's Meteostat ID and hold one JSON object which describes the respective weather station.\n\n### Properties\n\nEach weather station must provide the following properties. Missing values are defined as `null`. The following properties are mandatory and must be present in a station file. Additional properties, like all entries under `identifiers`, are optional and should only be included if set.\n\n* `id`: Meteostat ID (_String_)\n* `name`: Name in different languages (_Object_)\n* `country`: ISO 3166-1 alpha-2 country code, e.g. CA for Canada (_String_)\n* `region`: ISO 3166-2 state or region code, e.g. TX for Texas (_String_)\n* `identifiers`: Identifiers (_Object_)\n* `location`: Geographic location (_Object_)\n    * `latitude`: Latitude (_Float_)\n    * `longitude`: Longitude (_Float_)\n    * `elevation`: Elevation in meters (_Integer_)\n* `timezone`: Time zone (_String_)\n\n## Formatting\n\n* All files in the `stations` directory are named after the station's Meteostat ID.\n* Names of weather stations are capitalized.\n* Use short and descriptive names for a weather station.\n* Many weather stations are located at aerodromes. When naming weather stations please refer to aerodromes, which involve air cargo or passengers, as *airports* and use the term *airfield* if they don't.\n\n## Contributing\n\nIf you want to add a new weather station, update some information or correct an error, please either correct/update the affected file(s) \u0026 create a pull request or fill an issue \u0026 describe your concern. We will review each request and update the list accordingly. Once your changes are merged into the `master` branch they will be visible in all Meteostat products within a few days.\n\n## Data License\n\nThe list of weather stations is available under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode).\n","funding_links":["https://github.com/sponsors/meteostat","https://patreon.com/meteostat","https://www.paypal.com/donate?hosted_button_id=MQ67WRDC8EW38"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["research"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/3325","html_url":"https://ost.ecosyste.ms/projects/3325"}