Using Python and R, what would be the best strategy to tie Census Block-level data to zip/zip + 4? I understand we're not matching polygon boundaries (zip codes are not geographies), but somehow service bureaus/lettershops tie addresses to Census demographic data. Do they work off zip+4 centroids? How can this lookup be updated with new zip/zip+4 definitions (i.e. not be bound by the 2010 ZTCA). Thanks for any pointers/links/book references.

  • Do you want to find demographics for ZIP code, or demographics for an address? The former involves simple intersection, areal allocation, or dasymetric mapping. The latter involves geocoding. When you clarify, I can provide a real answer. – Lee Hachadoorian Jun 12 '14 at 22:10
  • Good question. All I have available is the zip code (in some cases, zip+4), so I'm interested in finding demographics for a zip code. – user2105469 Jun 17 '14 at 18:43
  • If all you are interested in is aggregate demographics by ZIP code, I would recommend using the ZCTAs. ZCTAs have been updated for ACS 2012 5-yr, and will continue to be updated between the decennial censuses. For ZIP+4s, I have never seen boundary files for those, so I'm not sure that you can do better than ZIP/ZCTA-level demographics, unless you are prepared to use geocoding to create your own ZIP+4 polygons. – Lee Hachadoorian Jun 17 '14 at 23:05
  • I didn't know ZTCAs were now updated between Censuses, that actually simplifies things considerably. Thanks for the info. – user2105469 Jun 20 '14 at 3:16
  • OK, if that's adequate for you, I'll turn that into an answer and you can mark as solved. – Lee Hachadoorian Jun 20 '14 at 16:41

ZCTAs are now updated between censuses using American Community Survey data. Because ZCTAs are small areas, you can only get them in the five-year releases. The latest ZCTAs are in the ACS 2012 5-year release.

ZCTAs of course don't conform exactly to ZIP Codes, but if your goal is just to get plausible demographics at the ZIP Code level, this is by far the easiest way. If you want to develop own solution, you would have to use areal allocation (intersect the the polygons, then distribute the population based on proportion of area overlapping) or dasymetric mapping.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.