{"id":18762113,"url":"https://github.com/druimalban/ukclimate","last_synced_at":"2025-12-04T17:30:14.218Z","repository":{"id":210318948,"uuid":"176019510","full_name":"druimalban/ukclimate","owner":"druimalban","description":"Parse raw historical Met Office weather station data","archived":false,"fork":false,"pushed_at":"2023-12-01T23:47:00.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-29T05:08:27.766Z","etag":null,"topics":["haskell","parsec","recursion-schemes"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/druimalban.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-03-16T20:09:01.000Z","updated_at":"2023-12-01T23:52:02.000Z","dependencies_parsed_at":"2023-12-02T00:46:14.649Z","dependency_job_id":null,"html_url":"https://github.com/druimalban/ukclimate","commit_stats":null,"previous_names":["druimalban/ukclimate"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druimalban%2Fukclimate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druimalban%2Fukclimate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druimalban%2Fukclimate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/druimalban%2Fukclimate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/druimalban","download_url":"https://codeload.github.com/druimalban/ukclimate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239656464,"owners_count":19675612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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"}},"keywords":["haskell","parsec","recursion-schemes"],"created_at":"2024-11-07T18:19:26.811Z","updated_at":"2025-12-04T17:30:14.174Z","avatar_url":"https://github.com/druimalban.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ukclimate - Parse raw historical Met Office weather station data\n\nThe Met Office provides a number of datasets for public benefit.\nThese largely relate to a number of historical measurements at various sites\naround the UK.\n\nI wanted to use this data, but because it is largely not provided in a format\nwhich I could easily process, like CSV, this became difficult, and I had to\nmanually parse it.\n\nThe files are designed to be manually copied into a spreadsheet program.\nThese are separated by regular characters, but the format is not consistent\nacross years/locations, and there are additionally comments throughout.\nI believe these are updated manually by Met Office staff.\n\t\nThe library and sample client is able to serialise most if not all examples of\nhistorical station data in JSON and CSV available from the Met Office, at the\ntime of writing. Needless to say, this is a work in progress.\n\nI’m mostly writing this as a learning exercise for Haskell, particularly as\nregards to parser combinators, as well as using the wonderful recursion-schemes\nlibrary, and lenses.\n\nNote: make sure `~/.ukclimate/data` is a real directory with sites.json in it.\nYou can make a symbolic link to the path of `contrib` in the source directory for\ninstance.\n\n-----\n\nImplemented:\n  * Parse a given file into a general representation of historic data and regional time-ordered series\n  * Download and cache files from the Met Office\n  * Cache results from already-parsed files\n  * Debug annotations provided by attoparsec, making clear where failure occurs\n  \nTo-do:\n  * Parsing regional sets that are rank-ordered rather than time-ordered (it's very similar data)\n  * Improve caching of results","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdruimalban%2Fukclimate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdruimalban%2Fukclimate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdruimalban%2Fukclimate/lists"}