{"id":18594123,"url":"https://github.com/corndogit/dataspaceart","last_synced_at":"2025-10-06T23:53:31.966Z","repository":{"id":41283662,"uuid":"499843578","full_name":"corndogit/DataSpaceArt","owner":"corndogit","description":"A generative art project which generates stylized patterns from weather data","archived":false,"fork":false,"pushed_at":"2024-12-11T19:37:01.000Z","size":812,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T22:35:57.730Z","etag":null,"topics":["data-visualization","python","weather"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/corndogit.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-04T14:05:22.000Z","updated_at":"2024-12-11T19:37:06.000Z","dependencies_parsed_at":"2024-12-11T20:26:16.609Z","dependency_job_id":"0c48f0e3-5d92-4b93-91ea-e0a9bdf1cf11","html_url":"https://github.com/corndogit/DataSpaceArt","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corndogit%2FDataSpaceArt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corndogit%2FDataSpaceArt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corndogit%2FDataSpaceArt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/corndogit%2FDataSpaceArt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/corndogit","download_url":"https://codeload.github.com/corndogit/DataSpaceArt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518400,"owners_count":22084376,"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":["data-visualization","python","weather"],"created_at":"2024-11-07T01:14:34.817Z","updated_at":"2025-10-06T23:53:26.923Z","avatar_url":"https://github.com/corndogit.png","language":"Python","readme":"# DataSpaceArt\n\nDataSpaceArt is a project for generating patterns with parameters which are altered by weather data. For this project, weather\ndata from the Met Office DataHub API is used to change the parameters of the Hilbert curve, such as colour range for the curve,\nlength, background colour, etc.\n\nThe aim of the project is to turn any type of quantitative data into a meaningful visual representation. With weather as\nthe choice of data, the goal is to generate a curve for each day of the month, using the daily weather data for Swansea. While the project has been created for use\nwithin Swansea in mind, the settings are completely configurable and work for any location in the world covered by Met Office's Site Specific forecast.\n\n## Usage\n\nCurrently, the project has only been tested up to Python 3.11.11, so it is recommended that you use this version.\n\nTo install the necessary dependencies, use `pip install -r requirements.txt` in your terminal.\n\nA [Met Office Weather DataHub](https://datahub.metoffice.gov.uk/) API key is\nrequired as well. You can obtain these for free, but make sure to sign up for the site specific forecast API. Set this as a system environment variable or place in a .env file using the example as a reference.\n\nIn `config.json`, you can also choose your preferences for the program.\n\nRun `main.py`, and a Hilbert curve will be generated. Depending on your settings, it is then displayed and/or saved to\nthe generated_figures directory.\n\n### Example\n\n![example2](.github/img/fig2.png)\n\nThis example was generated using the following data:\n\n```SignificantWeatherCode: 7 (cloudy)\nMaxTemperature: 21.0  # degrees C\nMinTemperature: 12.69\nWindSpeed: 4.94407158836689  # mph\nWindDirection: 146  # bearing\n...\n```\n\nSome unused data is omitted, and plans to implement it are being considered in future updates.\n\n## How it works\n\nData comes from a Met Office DataHub API request, returning an JSON containing an extensive\namount of useful weather data for a given set of latitude and longitude coordinates. The code for this is adapted from\none of my other projects, [weather-cli](https://github.com/corndogit/weather-cli).\n\nCoordinates for a 2-dimensional Hilbert curve, which is a type of space-filling curve, are generated by\n[hilbertcurve](https://github.com/galtay/hilbertcurve) and are plotted using matplotlib with the order determined by some data from\nthe input. The data is also used to generate colour ranges using [colour.py](https://github.com/vaab/colour)\nto apply along the length of the curve and the background. The current uses of the data are as follows:\n\n- Wind speed (in mph) determines the number of iterations used to generate a Hilbert curve (between 3 and 8).\n- Wind direction determines where the radial background gradient starts from.\n- The weather type corresponds to a dictionary of hex colour tuples, used to generate a colormap for the background.\n- Min/Max temperature in Celsius determine the start and end point colour along the Hilbert curve.\n\n## Exhibition\n\nDataSpaceArt was displayed in a retail unit in the Swansea city centre! The exhibition showcased a collection of patterns\nthat were generated from July to December 2022 and capture a variety of unusual weather types, such as the hottest\nrecorded day of the year, coldest day of the year and a day where a lightning storm was captured in the data! If you want\na hint as to which one, it's the one that stands out the most...\n\nThe exhibition lasted for a few weeks and could be found on Bellevue Way, just around the corner from The Dragon hotel.\n\n\u003cimg src=\".github/img/exhib2.jpg\" alt=\"Exhibition from outside\" width=\"700\"/\u003e\n\u003cimg src=\".github/img/exhib1.jpg\" alt=\"Exhibition on inside\" width=\"700\"/\u003e\n\n## Future changes\n\n- [ ] Come up with ways to change the output using currently unused data (e.g. chance of rainfall, relative humidity, visibility)\n- [ ] Implement \"special events\" for rare weather events\n- [ ] Plan how to take the output from the program and display it (e.g. on a webpage)\n- [ ] Write a Twitter bot that posts a generated pattern once per day\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorndogit%2Fdataspaceart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorndogit%2Fdataspaceart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorndogit%2Fdataspaceart/lists"}