{"id":16386315,"url":"https://github.com/tmcw/sometimemachine","last_synced_at":"2026-03-27T07:11:48.963Z","repository":{"id":4700797,"uuid":"5848060","full_name":"tmcw/sometimemachine","owner":"tmcw","description":"openstreetmap history analysis","archived":false,"fork":false,"pushed_at":"2016-12-16T02:56:35.000Z","size":959,"stargazers_count":23,"open_issues_count":0,"forks_count":9,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-20T14:57:16.014Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmcw.png","metadata":{"files":{"readme":"README.md","changelog":"changesets_2012.png","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-17T22:07:40.000Z","updated_at":"2020-06-10T04:03:05.000Z","dependencies_parsed_at":"2022-08-24T15:11:17.646Z","dependency_job_id":null,"html_url":"https://github.com/tmcw/sometimemachine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tmcw/sometimemachine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fsometimemachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fsometimemachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fsometimemachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fsometimemachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmcw","download_url":"https://codeload.github.com/tmcw/sometimemachine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmcw%2Fsometimemachine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31032130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T06:08:13.374Z","status":"ssl_error","status_checked_at":"2026-03-27T06:08:07.217Z","response_time":164,"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"}},"keywords":[],"created_at":"2024-10-11T04:16:55.214Z","updated_at":"2026-03-27T07:11:48.905Z","avatar_url":"https://github.com/tmcw.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sometimemachine\n\nAnalysis of OpenStreetMap History.\n\n[Latest weekly changesets](http://planet.openstreetmap.org/) on\n`planet.openstreetmap.org` includes all changesets for the recorded\nhistory of OpenStreetMap as a 4.2G XML file.\n\nChangesets have:\n\n* uid\n* id\n* bbox\n* num_changes\n* date_opened\n* date_closed\n\nThis code is inspired by [ChangesetMD](https://github.com/ToeBee/ChangesetMD),\nwith a few differences:\n\n* SQLite instead of Postgres\n* expat instead of sax.handler\n* more compact schema for smaller databases\n* BSD instead of GPL\n\nInitialize an SQLite file:\n\n    cat schema.sql | sqlite3 changesets.sqlite\n\nImport a changeset dump into sqlite:\n\n    python stm.py changesets-latest.osm[.bz2] changesets.sqlite\n\n Indexes\n\n     create index uid_idx on osm_changeset (user_id);\n\n## Products\n\nVideos: [OSM Edits](http://vimeo.com/53991791), [centers of OSM edits](http://vimeo.com/53021947).\n\n`unique_per_day.js`\n\n* [Active Contributors Per Month](http://bl.ocks.org/3750490)\n* [Active Contributors Per Day](http://bl.ocks.org/3750519)\n\n`two_edit_per_month.js`\n\n* [Contributors by Level By Month](http://bl.ocks.org/3751212)\n* [up to 10 edits](http://bl.ocks.org/3751255)\n\n## Graphs\n\nThese guys you can generate with scripts but are too heavy to put on gist.\n\nWhen users register versus how likely they are to contribute for more than\na year. Nearly all of the early users of OpenStreetMap contributed more\nthan a year, while users who started contributing 2 years ago are much\nless likely.\n\n![](https://raw.github.com/tmcw/sometimemachine/master/lifetime/graph.png)\n\nChangesets in the last 3 months (dark red), last year (orange), all time\n(light orange)\n\n![](https://raw.github.com/tmcw/sometimemachine/master/changesets_month.png)\n\nUser lives histogram. Of course, the vast majority of users last less than\ntwo days. It's an exponential distribution from there on with no clear peaks.\n\n![](https://raw.github.com/tmcw/sometimemachine/master/lives/user_lives.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmcw%2Fsometimemachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmcw%2Fsometimemachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmcw%2Fsometimemachine/lists"}