I'm writing a program that needs to generate GEOID values from 2000 and 2010 Census data, to link the census data to TIGER/Line records. I'm starting with the state, county, region block, etc, values in the census GEO files, and need to create GEOIDs.

I need to work with all of the summary levels, and since the structure of the GEOID value seems to vary depending on the type of geography, it would be really nice to have a spec for constructing it.

I found this document, but it only specifies the GEOID structure for the redistricting files:


I'd like to get the same thing, but for all summary levels.

I've considered downloading all of the tiger files and extracting the GEOID10 values and reverse engineering them from the records attached to the shape files, but the programming would cost more than just paying someone to do it manually by inspecting the files or the documentation ( http://www.census.gov/geo/www/tiger/tgrshp2010/TGRSHP10SF1.pdf )

Any other ideas how to most easily generate GEOID from census GEO files, for all records and summary levels?

Alternately, can the 0GEOID_Construction_for_Matching.pdf file, which is written for the redistricting files, be used as a spec for the 2010 SF1 summary levels and the GEOIDs of the corresponding TIGER files?


3 Answers 3


The GEOID is a concatenation of a bunch of fields as noted in the summary file documentation on page 13. In the geographic area codes, you'll be looking for fields at positions 26-65.


After several years, I finally created my own code to build a schema. However, it is currently embedded in a python library, so it isn't generally usable as a spec. Here is the geoid module, which parses and generate Census geoids, with variants for Census, Tiger and ACS formats:


If you are handy with programming, you can extract all of the required information from one of the source files, although it may be easier just to use the module in python.


The segments dictionary has lists of components for each of the summary level numbers, and the lengths dictionary has the length in decimal digits for each of the components. Note that a few of the lengths are specified as strings; this is a signal that the component can take characters, as well as digits.

This code is generated from a python notebook that analyzes the data from the first link in this answer.


There is a short spec for some geoids on the census website in the "GEOID Structure for Geographic Areas" section.


Here you cand find a simple explanation for the columns that you must concantenate to generate the GeoIDs for different geographic areas



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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