Created
September 27, 2016 17:24
-
-
Save markiliffe/32c32f04b53e9ad54892e823d09e34ad to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Table Population: The Facebook population data, inputted by CSV. Points | |
# Table tzadmin: Tanzania administration boundaries. Polygons | |
# Table fb_pop: The sum of population for a given admin feature ID | |
# Table tzadmin_fbpop: The joined table that sums the sum of population and geographic features. | |
#Generate the table with the right values | |
CREATE TABLE population | |
( | |
gid serial NOT NULL, | |
the_geom geometry, | |
population float8, | |
CONSTRAINT population_pkey PRIMARY KEY (gid), | |
CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2), | |
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL), | |
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326) | |
); | |
CREATE INDEX population_the_geom_gist | |
ON population | |
USING gist | |
(the_geom ); | |
#Create the geometry by concatenating both the longitude and latitude together with their CRS | |
UPDATE population | |
SET the_geom = ST_GeomFromText('POINT(' || longitude || ' ' || latitude || ')',4326); | |
# Create a separate table that sums the population within each polygon, based on the ST_Contains. Replicates Point in Polygon. | |
CREATE TABLE fb_pop AS | |
SELECT tzadmin.id, SUM(population.population) | |
FROM population,tzadmin | |
WHERE ST_Contains(tzadmin.the_geom, population.the_geom) | |
GROUP BY tzadmin.id | |
#Join the table with the | |
CREATE TABLE tzadmin_fbpop AS | |
SELECT gid, the_geom, latitude, longitude, sum FROM | |
INNER JOIN fb_pop ON (population.gid = fb_pop.id); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment