Buffers and Beyond: Verifying, adding and maintaining OSM data for Sex Offender Buffers

Why are we doing this?

The IL LAW states that specific regulations must be followed when it comes to SO and residency.

  1. They cannot loiter within 500 ft of Public parks
    "Public park" includes a park, forest preserve, bikeway, trail, or conservation area under the jurisdiction of the State or a unit of local government.

  2. They cannot reside within 500 ft of playgrounds, childcare institutions, day care centers etc (It is unlawful for a child sex offender to knowingly reside within 500 feet of a playground, child care institution, day care center, part day child care facility, day care home, group day care home, or a facility providing programs or services exclusively directed toward persons under 18 years of age.)
    AND schools ( school building or the real property comprising any school that persons under the age of 18 attend. )

THE BUFFER: For the purposes of this Section, the 500 feet distance shall be measured from: (1) the edge of the property of the school building or the real property comprising the school that is closest to the edge of the property of the child sex offender's residence or where he or she is loitering, and (2) the edge of the property comprising the public park building or the real property comprising the public park, playground, child care institution, day care center, part day child care facility, or facility providing programs or services exclusively directed toward persons under 18 years of age, or a victim of the sex offense who is under 21 years of age, to the edge of the child sex offender's place of residence or place where he or she is loitering.

The process:

To establish properties that follow these rules we need 2 buffers:

  1. Loitering buffer - create a 500 foot buffer from park, forest preserve, bike-way, trail, or conservation area ( for areas this is the entirety of the parcel)

  2. Residency buffer - create a 500 foot buffer from school areas, playgrounds ( these extend to the edge of the property the playground is on - most likely a park), day care institutions and residential daycare** (entirety of parcels for all of the above )

** residential daycare data is obtained from DCFS’s database on a monthly basis. This will be a point layer that we geocode and remains off OSM. While this data is public, we don’t want to put residential addresses as daycares.

Preparing the data:

Primarily, this data will be obtained from OSM.
OSM Basics

In OSM Map:

  • playgrounds as areas ( those boundaries are up to the mapper)
  • School buildings
  • bike paths
  • Parks/Forest Preserves/ School areas**

**This is where it gets a bit tricky. These must be the entirety of the parcel.
The beginner’s method would be to use a cross reference between OSM data in AGOL and parcel overlay. Start with parks which can be found here.

Filter by leisure = park ( and why not leisure = playground, just keeping an eye on missing playgrounds)

now we have a clear parks mapped in OSM visualization.

Next we can use parcels data you have access to ( hey, some of those are free and public. such as Kendall County Parcels in AGOL! )

Off the bat we see some issues between a park I personally mapped… Bicentennial Riverfront Park should in fact be all 3 of these parcels. This can be further verified by seeing the Owner’s Name and cross referencing it further with the Yorkville Parks Map ( currently under constructions but I’ll send it over when ready).

If you select the OSM layer, there is link you can use to directly edit the feature!

OSM opens up and you can get right to editing. Because it is a bit cluttered - you are able to turn off map data that’s in the way.

If you have experience with OSM and JOSM! this can be done much faster by adding parcel layer and tracing it directly in JOSM. ( see below for the process!)

The Buffers:

In Pro, add OSM data (this can be done in several ways:

  • Add directly from OSM with Overpass turbo, where you can export a query or GeoJSON of the data
  • If you want to use OSM data within your organization, you can also set up a daily scrape. A how to will be added here … eventually!
  • Since I’d rather work with live data, you can add data in Pro. Living atlas doesn’t seem to pull these feature layers in the catalog pane so just add them with a URL. Head to AGOL and open SMOORE_OSM’s items!.

We’ll need:

OSM Leisure Areas for NA (those will be used for playgrounds and parks)
OSM Landuse Areas for NA ( we will use this for education/school and childcare. Parks will also be listed here due to the tagging system but don’t worry about those!)

There is inconsistency between the data in OSM and these layers ( with education areas entirely missing here and parks having odd boundaries despite them updating every 15 minuts. For that reason I am adding the public KC OSM Landuse scrape for the purpose of making this guide usable right now. FYI KC’s scrape updates at midnight. investigating further

- → Bonus school layer OSM Educational Establishments ( this will be a point layer instead. It can also be used

- → Freshly scraped Kendall County OSM Transportation data ( for bike ways!)

How to add this data in Pro:

Copy the URL from each feature layer above.

Add DCFS exported csv
Add Parcel data ( here’s KC’s free access Parcel data)

image

  1. Data Prep
    1.1. Geocode DCFS Data!
    1.2 Filter the OSM data:
    Kendall County OSM Landuse - Use select by attributes:
    class IN ('playground', 'education', 'kindergarten', 'park', 'school', 'schoolyard')

Click the data tab → Layer from selection ( to keep things cleaned up)

Transportation data - non motorized ways - select by attribute - bikeways
Click the data tab → Layer from selection

Project all these layers to NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet ( or something else depending on where you are. Do remember projecting will sever the live link)

Your map should now look something like this:

but maybe with better color scheme!

  1. The buffers
    We want 2 separate buffers ( loitering and residency); also you can dissolve for more aesthetically pleasing results.
    2.1. Loitering
    For loitering we need to separate the parks from the Landuse, so make another selection and isolate the parks on theirs own. You can now run the 500 ft Buffer for both the Parks and the Bikeways. ( Forest preserves should also be included here but since this is a work in progress, we’re sticking to parks and bikeways) . Merge layers, then dissolve (Use dissolve boundaries)

    2.2. Now it’s going to get a bit tricky.

We need to intersect 2 things - the DCFS data and the playgrounds with the parcels.

Let’s start with the DCFS:
With parcels selected choose Select by Location - Parcels Contains DCFS

With the parcels selected, create a 500 ft. buffer and let’s move on!

Playgrounds
With a new query select playgrounds from the Landuse layers → layer from selection.
Pairwise buffer from the selected parcels.

Education!
Query the remaining values from landuse: class IN ('education', 'kindergarten', 'school', 'schoolyard') - new layer from selection → project to NAD_1983 → pairwise buffer

Merge the 3 residency buffers together ( education to playgrounds then this new buffer to the DCFS) and dissolve boundaries.

Final look

We have 2 separate layers created - loitering buffer and residency buffer. I included the content pane in this as a reference ( don’t mind my clutter!)

  • OG Layers ( those are live layers, except for DCFS, from which we can query and project as these buffers need to be updated to remain accurate)
  • Buffers → because of the clutter and all the temp stuff we created I like to leave breadcrumbs of what came from where. This group is split into the Residency and Loitering subgroups. With all individual buffers created along the way joining one of the subgroups so I can keep track of stuff.
  • Projected (to keep track of what has been projected which is, some may say, important in this particular project).

Final thoughts

  1. This is still a work in progress so any feedback is welcome!
  2. As I was writing this guide I realized that there are some unnecessary steps in my order of operations. You can modify this as you like. Personally, I’m working on a model builder to make this recurring process easier
  3. OSM specifics are still beings discussed such as tagging. For now I’d say parks and playgrounds, both of which use a leisure tag are great for beginners with OSM!
  4. If you have any interest in joining our OSM Municipal collaboration to keep this data fresh and accurate, please send me an email! We’d love to have you as part of our SO Buffers Brainstorming sessions.
  5. This buffer is going to 2 dashboards, one of which filters PINS within buffer based on map extend.

If there is any interest, I can also make a (much quicker) guide on the dashboard specifics!

Update: Already there has been some feedback. When using playgrounds, currently this includes ALL playgrounds. However, it has been brought up that for the purposes of the SO buffer, we must only consider public property playgrounds ( looking at you Raging waves). Therefore, when mapping in OSM, please include the access tag = public OR private. When working on the data set up for the buffer, select landuse (or leisure) = playground and for playgrounds select access = public.

5 Likes