{"id":28482301,"url":"https://github.com/osmlab/changewithin","last_synced_at":"2026-03-01T22:37:39.989Z","repository":{"id":9569534,"uuid":"11482158","full_name":"osmlab/changewithin","owner":"osmlab","description":"Daily emails of changes to buildings and addresses on OpenStreetMap.","archived":false,"fork":false,"pushed_at":"2016-08-18T15:58:06.000Z","size":329,"stargazers_count":66,"open_issues_count":4,"forks_count":16,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-06-30T09:42:33.672Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.mapbox.com/blog/nyc-and-openstreetmap-cooperating-through-open-data/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/osmlab.png","metadata":{"files":{"readme":"README.md","changelog":"changewithin.py","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":"2013-07-17T17:09:35.000Z","updated_at":"2024-09-02T23:29:05.000Z","dependencies_parsed_at":"2022-08-25T23:11:06.375Z","dependency_job_id":null,"html_url":"https://github.com/osmlab/changewithin","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/osmlab/changewithin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmlab%2Fchangewithin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmlab%2Fchangewithin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmlab%2Fchangewithin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmlab%2Fchangewithin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/osmlab","download_url":"https://codeload.github.com/osmlab/changewithin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/osmlab%2Fchangewithin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29987346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T21:06:37.093Z","status":"ssl_error","status_checked_at":"2026-03-01T21:05:45.052Z","response_time":124,"last_error":"SSL_read: 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":"2025-06-07T20:09:45.091Z","updated_at":"2026-03-01T22:37:39.985Z","avatar_url":"https://github.com/osmlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Changewithin\n\n*Daily emails of changes to buildings and addresses on OpenStreetMap.*\n\nchangewithin is a simple script that pulls [daily changes](http://planet.openstreetmap.org/)\nfrom OpenStreetMap with `requests`, parses them with `lxml`, finds the ones that are inside\nof a GeoJSON shape, sorts out the ones that are buildings, and emails a set of users\nwith [mailgun](http://www.mailgun.com/).\n\nThe one file that will require editing is [config.ini](https://github.com/migurski/changewithin/blob/master/config.ini).\n\nAt the top you will find a simple list of email addresses to which the script\nwill send reports. The email templates for both html and text can be edited within\nthe file `lib.py`. The report itself contains a summary of changes, then lists\neach relevant changeset, its ID, and further details. These include the user who\nmade the change and their comment, individual element IDs for building footprint\nand address changes that link to their history, and a map thumbnail that is centered\non the location where the edits were made.\n\n### Geography\n\n`nyc.geojson` contains sample boundaries for New York City.\n\nYou can configure a remote URL containing GeoJSON data. US Census places and\ncounties are available from [Code for America](http://codeforamerica.org),\nreferenced by GEOID. To find the GEOID for a county or place, start with one\nof these Census lookup tools:\n\n* http://www.census.gov/geo/reference/codes/cou.html (Counties)\n* http://www.census.gov/geo/reference/codes/place.html (Places)\n\nEach GEOID combines the state FIPS code (two digits) and\n[ANSI code](http://www.census.gov/geo/reference/ansi.html).\nFor example, to find the GEOID of New York City, select New York State via the\n[Place Lookup tool](http://www.census.gov/geo/reference/codes/place.html)\nabove and look for \"New York City\" [on the page](http://www.census.gov/geo/reference/codes/data/place/3600000.html).\nIts ANSI code is 51000 and New York's state FIPS code is 36. Therefore, New\nYork City's GEOID is 3651000 and its GeoJSON URL is:\n\n* http://forever.codeforamerica.org/Census-API/by-geoid/3651000.json\n\nExample GeoJSON URLs for L.A. County, Washington DC, and Oakland CA:\n\n* http://forever.codeforamerica.org/Census-API/by-geoid/06037.json\n* http://forever.codeforamerica.org/Census-API/by-geoid/11001.json\n* http://forever.codeforamerica.org/Census-API/by-geoid/0653000.json\n\n## Installation\n\nRequires [wget](http://www.gnu.org/software/wget/) or [cURL ](http://curl.haxx.se/).\n\ncURL typically comes pre-installed.\n\nFor Mac use [homebrew](http://brew.sh/) and one of:\n\n    brew install wget\n    brew install curl\n\nFor Ubuntu/Linux one of:\n\n    apt-get install wget\n    apt-get install curl\n\nRequires Python with [lxml](http://lxml.de/), [requests](http://docs.python-requests.org/),\n[pystache](http://defunkt.io/pystache/), [PIL](http://effbot.org/imagingbook/),\nand [ModestMaps](https://github.com/stamen/modestmaps-py).\n\nOptionally [set up virtualenv](http://www.virtualenv.org/en/latest/#usage):\n\n    virtualenv --no-site-packages venv-changewithin\n    source venv-changewithin/bin/activate\n\nInstall libraries needed for fast XML processing and Python extensions.\nFor Ubuntu/Linux:\n\n    apt-get install python-dev libxml2-dev libxslt1-dev\n\nInstall Python packages:\n    \n    pip install -r requirements.txt\n\nCopy config-example.ini to config.ini and configure area of interest under `[area]` and email recipients under `[email]`.\n\n## Running\n\n    python changewithin.py\n\n## Automating\n\nAssuming the above installation, edit your [cron table](https://en.wikipedia.org/wiki/Cron) (`crontab -e`) to run the script once a day at 7:00am.\n\n    0 7 * * * ~/path/to/changewithin/bin/python ~/path/to/changewithin/changewithin.py\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmlab%2Fchangewithin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fosmlab%2Fchangewithin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fosmlab%2Fchangewithin/lists"}