I'm trying to create a relationship file between two vintages of census tracts. (in this case, 2010 and 2013.) Reason being to load ACS (American Community Survey) census data and use weighted means to tie it back to 2010 census tracts. (The actual data for my project uses 2010 census tracts as of 2010 as a legal requirement.)

In truth, there's very little difference between these two census vintages (maybe 5-10 naming changes per year, and 1-2 geometry changes, in around 74,000 tracts.) But I would rather not have to deal with these changes by hand, as more changes will be forthcoming as the ACS people continue to muddle with the geometries. I intend to use every year of ACS moving forward, and backward to 2010.

The shapefiles come from Census at the following source. For the duration of this post, i'll be referring to FIPS, let me say that an 11 digit FIPS code uniquely identifies a census tract. (digits 1-2 identify state, 3-5 identify county within state, 6-11 identify census tract within county)



Ideally, i want to be able to overlay them and get a sort of a table output, like:

FIPS_2010 | FIPS_2013 | AREA(Sq.KM)

Then quick SQL commands (area/sum(area) group by FIPS_year) would allow me to get:

FIPS_2010 | FIPS_2013 | AREA(Sq.KM) | PCT_2010 | PCT_2013

Then for any particular FIPS, if PCT_2010 = 1, then that element represents the complete tract for 2010. If it's less than 1, then a geography change occured.

I'm just lost on how to do the initial overlay analysis in QGIS.

  • Two tracts (representing the same place in different years) can have different geometry but the same area. Is this a problem? If so, I'd use something like PostGIS's ST_Equals as a more robust comparison than area. – alphabetasoup Nov 1 '15 at 0:08
  • No, that's not a problem. It's not that I'm trying to find the changes, really, but that I'm trying to account for the changes in calculating some statistics. – Fayd Nov 1 '15 at 2:36
  • e.g., something like percent minority would be calculated as: sum((total_pop*pct_2013)-(nhwhite*pct_2013))/sum((total_pop*pct_2013)) as pct_minority for the vast majority of cases, this would be just exactly the same as doing it without the sums and weighting. It's just in these isolated cases that this would have an effect. (at least, ideally) – Fayd Nov 1 '15 at 2:41

Your Answer

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

Browse other questions tagged or ask your own question.