Create 2021 cartographic boundary files

This commit is contained in:
Diego Ripley
2025-06-04 16:36:45 +00:00
parent 13a86dc3dc
commit fad884efc8
18 changed files with 1324 additions and 971 deletions
+55 -6
View File
@@ -6,8 +6,9 @@ Aggregate Dissemination Areas
Definition here: https://web.archive.org/web/20240731061904/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo053
*/
DROP TABLE IF EXISTS silver.ada_2021;
CREATE TABLE silver.ada_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.ada_2021_digital;
CREATE TABLE silver.ada_2021_digital AS
SELECT DISTINCT
cd.country_dguid,
cd.country_en_name,
@@ -36,9 +37,9 @@ SELECT DISTINCT
dgr.ada_dguid,
ada.geom
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN silver.cd_2021 AS cd
LEFT JOIN silver.cd_2021_digital AS cd
ON dgr.cd_dguid = cd.cd_dguid
LEFT JOIN silver.cma_2021 AS cma
LEFT JOIN silver.cma_2021_digital AS cma
ON
concat(dgr.cma_dguid, dgr.cma_p_dguid)
= concat(cma.cma_dguid, cma.cma_p_dguid)
@@ -47,13 +48,61 @@ LEFT JOIN bronze.lada000a21a_e AS ada
-- Make geometries valid
UPDATE
silver.ada_2021
silver.ada_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ada_2021_geom_idx ON silver.ada_2021 USING gist (geom) WITH (
CREATE INDEX ada_2021_digital_geom_idx ON silver.ada_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.ada_2021_cartographic;
CREATE TABLE silver.ada_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
b.ada_dguid,
a.geom
FROM
bronze.lada000b21a_e AS a,
silver.ada_2021_digital AS b
WHERE a.dguid = b.ada_dguid;
-- Make geometries valid
UPDATE
silver.ada_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ada_2021_cartographic_geom_idx ON silver.ada_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+47 -5
View File
@@ -6,8 +6,9 @@ Census Agricultural Regions
Definition here: https://web.archive.org/web/20250401192328/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/definition-eng.cfm?ID=geo006
*/
DROP TABLE IF EXISTS silver.car_2021;
CREATE TABLE silver.car_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.car_2021_digital;
CREATE TABLE silver.car_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -28,7 +29,7 @@ SELECT DISTINCT
car.carfname AS car_fr_name,
car.geom
FROM
silver.pr_2021 AS pr,
silver.pr_2021_digital AS pr,
silver.dissemination_geographies_relationship_2021 AS dgr,
bronze.lcar000a21a_e AS car
WHERE
@@ -37,13 +38,54 @@ WHERE
-- Make geometries valid
UPDATE
silver.car_2021
silver.car_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX car_2021_geom_idx ON silver.car_2021 USING gist (geom) WITH (
CREATE INDEX car_2021_digital_geom_idx ON silver.car_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.car_2021_cartographic;
CREATE TABLE silver.car_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
a.geom
FROM
bronze.lcar000b21a_e AS a,
silver.car_2021_digital AS b
WHERE
a.dguid = b.car_dguid;
-- Make geometries valid
UPDATE
silver.car_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX car_2021_cartographic_geom_idx ON silver.car_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
@@ -6,8 +6,9 @@ Census Consolidated Subdivisions
Definition here: https://web.archive.org/web/20250401192303/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo007
*/
DROP TABLE IF EXISTS silver.ccs_2021;
CREATE TABLE silver.ccs_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.ccs_2021_digital;
CREATE TABLE silver.ccs_2021_digital AS
SELECT DISTINCT
cd.country_dguid,
cd.country_en_name,
@@ -33,7 +34,7 @@ SELECT DISTINCT
ccs.ccsname AS ccs_name,
ccs.geom
FROM
silver.cd_2021 AS cd,
silver.cd_2021_digital AS cd,
silver.dissemination_geographies_relationship_2021 AS dgr,
bronze.lccs000a21a_e AS ccs
WHERE
@@ -43,13 +44,59 @@ WHERE
-- Make geometries valid
UPDATE
silver.ccs_2021
silver.ccs_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ccs_2021_geom_idx ON silver.ccs_2021 USING gist (geom) WITH (
CREATE INDEX ccs_2021_digital_geom_idx ON silver.ccs_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.ccs_2021_cartographic;
CREATE TABLE silver.ccs_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
b.ccs_dguid,
b.ccs_name,
a.geom
FROM
bronze.lccs000b21a_e AS a,
silver.ccs_2021_digital AS b
WHERE
a.dguid = b.ccs_dguid;
-- Make geometries valid
UPDATE
silver.ccs_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ccs_2021_cartographic_geom_idx ON silver.ccs_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+50 -6
View File
@@ -6,8 +6,9 @@ Census Divisions
Definition here: https://web.archive.org/web/20250131082459/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/definition-eng.cfm?ID=geo008#moreinfo
*/
DROP TABLE IF EXISTS silver.cd_2021;
CREATE TABLE silver.cd_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.cd_2021_digital;
CREATE TABLE silver.cd_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -31,7 +32,7 @@ SELECT DISTINCT
cd.cdtype AS cd_type,
cd.geom
FROM
silver.pr_2021 AS pr,
silver.pr_2021_digital AS pr,
bronze.lcd_000a21a_e AS cd,
silver.dissemination_geographies_relationship_2021 AS dgr,
bronze.lcar000a21a_e AS car
@@ -42,16 +43,59 @@ WHERE
-- Make geometries valid
UPDATE
silver.cd_2021
silver.cd_2021_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX cd_2021_geom_idx ON silver.cd_2021
CREATE INDEX cd_2021_digital_geom_idx ON silver.cd_2021_digital
USING gist (geom) WITH (fillfactor = 100);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.cd_2021_cartographic;
CREATE TABLE silver.cd_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
a.geom
FROM
bronze.lcd_000b21a_e AS a,
silver.cd_2021_digital AS b
WHERE
a.dguid = b.cd_dguid;
-- Make geometries valid
UPDATE
silver.cd_2021_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX cd_2021_cartographic_geom_idx ON silver.cd_2021_cartographic
USING gist (geom) WITH (fillfactor = 100);
/* 2016
Definition here: https://web.archive.org/web/20250304001456/https://www12.statcan.gc.ca/census-recensement/2016/ref/dict/geo008-eng.cfm
*/
*/
+53 -5
View File
@@ -6,8 +6,9 @@ Census Metropolitan Areas
Definition here: https://web.archive.org/web/20250518133322/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo009
*/
DROP TABLE IF EXISTS silver.cma_2021;
CREATE TABLE silver.cma_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.cma_2021_digital;
CREATE TABLE silver.cma_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -29,7 +30,7 @@ SELECT DISTINCT
cma.cmatype AS cma_type,
cma.geom
FROM
silver.pr_2021 AS pr,
silver.pr_2021_digital AS pr,
bronze.lcma000a21a_e AS cma,
silver.dissemination_geographies_relationship_2021 AS dgr
WHERE
@@ -44,13 +45,60 @@ WHERE
-- Make geometries valid
UPDATE
silver.cma_2021
silver.cma_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX cma_2021_geom_idx ON silver.cma_2021 USING gist (geom) WITH (
CREATE INDEX cma_2021_digital_geom_idx ON silver.cma_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.cma_2021_cartographic;
CREATE TABLE silver.cma_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
a.geom
FROM
bronze.lcma000b21a_e AS a,
silver.cma_2021_digital AS b
WHERE
concat(
a.dguid,
a.dguidp) = concat(
b.cma_dguid,
b.cma_p_dguid
);
-- Make geometries valid
UPDATE
silver.cma_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX cma_2021_cartographic_geom_idx ON silver.cma_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+65 -8
View File
@@ -6,8 +6,9 @@ Census Subdivisions
Definition here: https://web.archive.org/web/20240526213705/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo012
*/
DROP TABLE IF EXISTS silver.csd_2021;
CREATE TABLE silver.csd_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.csd_2021_digital;
CREATE TABLE silver.csd_2021_digital AS
SELECT DISTINCT
cd.country_dguid,
cd.country_en_name,
@@ -44,28 +45,84 @@ SELECT DISTINCT
gaf.sac_code,
csd.geom
FROM silver.gaf_2021 AS gaf
LEFT JOIN silver.cma_2021 AS cma
LEFT JOIN silver.cma_2021_digital AS cma
ON
concat(gaf.cma_dguid, gaf.cma_p_dguid)
= concat(cma.cma_dguid, cma.cma_p_dguid)
LEFT JOIN silver.cd_2021 AS cd
LEFT JOIN silver.cd_2021_digital AS cd
ON gaf.cd_dguid = cd.cd_dguid
LEFT JOIN silver.er_2021 AS er
LEFT JOIN silver.er_2021_digital AS er
ON gaf.er_dguid = er.er_dguid
LEFT JOIN silver.ccs_2021 AS ccs
LEFT JOIN silver.ccs_2021_digital AS ccs
ON gaf.ccs_dguid = ccs.ccs_dguid
LEFT JOIN bronze.lcsd000a21a_e AS csd
ON gaf.csd_dguid = csd.dguid;
-- Make geometries valid
UPDATE
silver.csd_2021
silver.csd_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX csd_2021_geom_idx ON silver.csd_2021 USING gist (geom) WITH (
CREATE INDEX csd_2021_digital_geom_idx ON silver.csd_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.csd_2021_cartographic;
CREATE TABLE silver.csd_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.er_dguid,
b.er_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
b.ccs_dguid,
b.ccs_name,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
b.csd_dguid,
b.csd_name,
b.csd_type,
b.sac_type,
b.sac_code,
a.geom
FROM
bronze.lcsd000b21a_e AS a,
silver.csd_2021_digital AS b
WHERE a.dguid = b.csd_dguid;
-- Make geometries valid
UPDATE
silver.csd_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX csd_2021_cartographic_geom_idx ON silver.csd_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+48 -5
View File
@@ -6,8 +6,9 @@ Census Tracts
Definition here: https://web.archive.org/web/20241013011815/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo013
*/
DROP TABLE IF EXISTS silver.ct_2021;
CREATE TABLE silver.ct_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.ct_2021_digital;
CREATE TABLE silver.ct_2021_digital AS
SELECT DISTINCT
cma.country_dguid,
cma.country_en_name,
@@ -32,7 +33,7 @@ SELECT DISTINCT
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN bronze.lct_000a21a_e AS ct
ON dgr.ct_dguid = ct.dguid
LEFT JOIN silver.cma_2021 AS cma
LEFT JOIN silver.cma_2021_digital AS cma
ON
concat(dgr.cma_dguid, dgr.cma_p_dguid)
= concat(cma.cma_dguid, cma.cma_p_dguid)
@@ -40,13 +41,55 @@ WHERE dgr.ct_dguid IS NOT null;
-- Make geometries valid
UPDATE
silver.ct_2021
silver.ct_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ct_2021_geom_idx ON silver.ct_2021 USING gist (geom) WITH (
CREATE INDEX ct_2021_digital_geom_idx ON silver.ct_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.ct_2021_cartographic;
CREATE TABLE silver.ct_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
b.ct_dguid,
a.geom
FROM
bronze.lct_000b21a_e AS a,
silver.ct_2021_digital AS b
WHERE a.dguid = b.ct_dguid;
-- Make geometries valid
UPDATE
silver.ct_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX ct_2021_cartographic_geom_idx ON silver.ct_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+118 -46
View File
@@ -2,9 +2,9 @@
Canada
*/
-- 2021 Canada;
DROP TABLE IF EXISTS silver.country_2021;
CREATE TABLE silver.country_2021 AS
-- 2021 Canada digital boundary;
DROP TABLE IF EXISTS silver.country_2021_digital;
CREATE TABLE silver.country_2021_digital AS
SELECT DISTINCT
'2021A000011124' AS country_dguid,
'Canada' AS country_en_name,
@@ -17,19 +17,44 @@ FROM
-- Make geometries valid
UPDATE
silver.country_2021
silver.country_2021_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2021_geom_idx ON silver.country_2021
CREATE INDEX country_2021_digital_geom_idx ON silver.country_2021_digital
USING gist (geom) WITH (fillfactor = 100);
-- 2016 Canada;
DROP TABLE IF EXISTS silver.country_2016;
CREATE TABLE silver.country_2016 AS
-- 2021 Canada cartographic boundary;
DROP TABLE IF EXISTS silver.country_2021_cartographic;
CREATE TABLE silver.country_2021_cartographic AS
SELECT DISTINCT
'2021A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b21a_e;
-- Make geometries valid
UPDATE
silver.country_2021_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2021_cartographic_geom_idx ON silver.country_2021_cartographic
USING gist (geom) WITH (fillfactor = 100);
-- 2016 Canada digital boundary;
DROP TABLE IF EXISTS silver.country_2016_digital;
CREATE TABLE silver.country_2016_digital AS
SELECT DISTINCT
'2016A000011124' AS country_dguid,
'Canada' AS country_en_name,
@@ -42,44 +67,94 @@ FROM
-- Make geometries valid
UPDATE
silver.country_2016
silver.country_2016_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2016_geom_idx ON silver.country_2016
CREATE INDEX country_2016_digital_geom_idx ON silver.country_2016_digital
USING gist (geom) WITH (fillfactor = 100);
-- 2011 Canada;
DROP TABLE IF EXISTS silver.country_2011;
CREATE TABLE silver.country_2011 AS
-- 2016 Canada cartographic boundary;
DROP TABLE IF EXISTS silver.country_2016_cartographic;
CREATE TABLE silver.country_2016_cartographic AS
SELECT DISTINCT
'2016A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b16a_e;
-- Make geometries valid
UPDATE
silver.country_2016_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2016_cartographic_geom_idx ON silver.country_2016_cartographic
USING gist (geom) WITH (fillfactor = 100);
-- 2011 Canada digital boundary;
DROP TABLE IF EXISTS silver.country_2011_digital;
CREATE TABLE silver.country_2011_digital AS
SELECT DISTINCT
'2011A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
st_union(geom) AS geom
ST_UNION(geom) AS geom
FROM
bronze.gpr_000a11a_e;
-- Make geometries valid
UPDATE
silver.country_2011
silver.country_2011_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2011_geom_idx ON silver.country_2011
CREATE INDEX country_2011_digital_geom_idx ON silver.country_2011_digital
USING gist (geom) WITH (fillfactor = 100);
-- 2006 Canada;
DROP TABLE IF EXISTS silver.country_2006;
CREATE TABLE silver.country_2006 AS
-- 2011 Canada cartographic boundary;
DROP TABLE IF EXISTS silver.country_2011_cartographic;
CREATE TABLE silver.country_2011_cartographic AS
SELECT DISTINCT
'2011A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
ST_UNION(geom) AS geom
FROM
bronze.gpr_000b11a_e;
-- Make geometries valid
UPDATE
silver.country_2011_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2011_cartographic_geom_idx ON silver.country_2011_cartographic
USING gist (geom) WITH (fillfactor = 100);
-- 2006 Canada digital boundary;
DROP TABLE IF EXISTS silver.country_2006_digital;
CREATE TABLE silver.country_2006_digital AS
SELECT DISTINCT
'2006A000011124' AS country_dguid,
'Canada' AS country_en_name,
@@ -92,40 +167,37 @@ FROM
-- Make geometries valid
UPDATE
silver.country_2006
silver.country_2006_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2006_geom_idx ON silver.country_2006
CREATE INDEX country_2006_digital_geom_idx ON silver.country_2006_digital
USING gist (geom) WITH (fillfactor = 100);
-- 2001 Canada;
-- TODO
/*
-- Clean Provinces and Territories layer;
UPDATE
bronze.gpr_000a06a_e
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
DROP TABLE IF EXISTS country_2001;
CREATE TABLE country_2001 AS
SELECT
DISTINCT '2001A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
st_union(geom) AS geom
-- 2006 Canada cartographic boundary;
DROP TABLE IF EXISTS silver.country_2006_cartographic;
CREATE TABLE silver.country_2006_cartographic AS
SELECT DISTINCT
'2006A000011124' AS country_dguid,
'Canada' AS country_en_name,
'Canada' AS country_fr_name,
'CAN' AS country_en_abbreviation,
'CAN' AS country_fr_abbreviation,
ST_UNION(geom) AS geom
FROM
lpr_000a21a_e;
bronze.gpr_000b06a_e;
CREATE INDEX country_2001_geom_idx ON
country_2001
USING GIST(geom) WITH (FILLFACTOR = 100);
*/
-- Make geometries valid
UPDATE
silver.country_2006_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX country_2006_cartographic_geom_idx ON silver.country_2006_cartographic
USING gist (geom) WITH (fillfactor = 100);
+46 -5
View File
@@ -6,8 +6,9 @@ Designated Places
Definition here: https://web.archive.org/web/20240731061904/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo018
*/
DROP TABLE IF EXISTS silver.dpl_2021;
CREATE TABLE silver.dpl_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.dpl_2021_digital;
CREATE TABLE silver.dpl_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -28,7 +29,7 @@ SELECT DISTINCT
dpl.dpltype AS dpl_type,
dpl.geom
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN silver.pr_2021 AS pr
LEFT JOIN silver.pr_2021_digital AS pr
ON dgr.pr_dguid = pr.pr_dguid
LEFT JOIN bronze.ldpl000a21a_e AS dpl
ON dgr.dpl_dguid = dpl.dguid
@@ -36,13 +37,53 @@ WHERE dgr.dpl_dguid IS NOT null;
-- Make geometries valid
UPDATE
silver.dpl_2021
silver.dpl_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX dpl_2021_geom_idx ON silver.dpl_2021 USING gist (geom) WITH (
CREATE INDEX dpl_2021_digital_geom_idx ON silver.dpl_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.dpl_2021_cartographic;
CREATE TABLE silver.dpl_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.dpl_dguid,
b.dpl_name,
b.dpl_type,
a.geom
FROM
bronze.ldpl000b21a_e AS a,
silver.dpl_2021_digital AS b
WHERE b.dpl_dguid = a.dguid;
-- Make geometries valid
UPDATE
silver.dpl_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX dpl_2021_cartographic_geom_idx ON silver.dpl_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+65 -5
View File
@@ -6,8 +6,9 @@ Dissemination Areas
Definition here: https://web.archive.org/web/20240731061905/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/definition-eng.cfm?ID=geo021
*/
DROP TABLE IF EXISTS silver.da_2021;
CREATE TABLE silver.da_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.da_2021_digital;
CREATE TABLE silver.da_2021_digital AS
SELECT DISTINCT
csd.country_dguid,
csd.country_en_name,
@@ -47,20 +48,79 @@ SELECT DISTINCT
dgr.da_dguid,
da.geom
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN silver.csd_2021 AS csd
LEFT JOIN silver.csd_2021_digital AS csd
ON dgr.csd_dguid = csd.csd_dguid
LEFT JOIN bronze.lda_000a21a_e AS da
ON dgr.da_dguid = da.dguid;
-- Make geometries valid
UPDATE
bronze.lda_000a21a_e
silver.da_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX da_2021_geom_idx ON silver.da_2021 USING gist (geom) WITH (
CREATE INDEX da_2021_digital_geom_idx ON silver.da_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.da_2021_cartographic;
CREATE TABLE silver.da_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.er_dguid,
b.er_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
b.ccs_dguid,
b.ccs_name,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
b.csd_dguid,
b.csd_name,
b.csd_type,
b.sac_type,
b.sac_code,
b.ct_dguid,
b.ada_dguid,
b.da_dguid,
a.geom
FROM
bronze.lda_000b21a_e AS a,
silver.da_2021_digital AS b
WHERE a.dguid = b.da_dguid;
-- Make geometries valid
UPDATE
silver.da_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX da_2021_cartographic_geom_idx ON silver.da_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+71 -6
View File
@@ -6,8 +6,9 @@ Dissemination Blocks
Definition here: https://web.archive.org/web/20250212081621/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/definition-eng.cfm?ID=geo014
*/
DROP TABLE IF EXISTS silver.db_2021;
CREATE TABLE silver.db_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.db_2021_digital;
CREATE TABLE silver.db_2021_digital AS
SELECT DISTINCT
csd.country_dguid,
csd.country_en_name,
@@ -52,22 +53,86 @@ SELECT DISTINCT
dgr.db_dguid,
db.geom
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN silver.csd_2021 AS csd
LEFT JOIN silver.csd_2021_digital AS csd
ON dgr.csd_dguid = csd.csd_dguid
LEFT JOIN silver.fed_2021 AS fed
LEFT JOIN silver.fed_2021_2013_digital AS fed
ON dgr.fed_dguid = fed.fed_dguid
LEFT JOIN bronze.ldb_000a21a_e AS db
ON dgr.db_dguid = db.dguid;
-- Make geometries valid
UPDATE
silver.db_2021
silver.db_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX db_2021_geom_idx ON silver.db_2021 USING gist (geom) WITH (
CREATE INDEX db_2021_digital_geom_idx ON silver.db_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.db_2021_cartographic;
CREATE TABLE silver.db_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.car_dguid,
b.car_en_name,
b.car_fr_name,
b.er_dguid,
b.er_name,
b.cd_dguid,
b.cd_name,
b.cd_type,
b.ccs_dguid,
b.ccs_name,
b.cma_dguid,
b.cma_p_dguid,
b.cma_name,
b.cma_type,
b.csd_dguid,
b.csd_name,
b.csd_type,
b.sac_type,
b.sac_code,
b.fed_dguid,
b.fed_name,
b.fed_en_name,
b.fed_fr_name,
b.ct_dguid,
b.ada_dguid,
b.da_dguid,
b.db_dguid,
a.geom
FROM
bronze.ldb_000b21a_e AS a,
silver.db_2021_digital AS b
WHERE b.db_dguid = a.dguid;
-- Make geometries valid
UPDATE
silver.db_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX db_2021_cartographic_geom_idx ON silver.db_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+46 -5
View File
@@ -6,8 +6,9 @@ Economic Regions
Definition here: https://web.archive.org/web/20250518132130/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo022
*/
DROP TABLE IF EXISTS silver.er_2021;
CREATE TABLE silver.er_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.er_2021_digital;
CREATE TABLE silver.er_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -27,7 +28,7 @@ SELECT DISTINCT
er.ername AS er_name,
er.geom
FROM
silver.pr_2021 AS pr,
silver.pr_2021_digital AS pr,
silver.dissemination_geographies_relationship_2021 AS dgr,
bronze.ler_000a21a_e AS er
WHERE
@@ -37,13 +38,53 @@ WHERE
-- Make geometries valid
UPDATE
silver.er_2021
silver.er_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX er_2021_geom_idx ON silver.er_2021 USING gist (geom) WITH (
CREATE INDEX er_2021_digital_geom_idx ON silver.er_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.er_2021_cartographic;
CREATE TABLE silver.er_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.er_dguid,
b.er_name,
a.geom
FROM
bronze.ler_000b21a_e AS a,
silver.er_2021_digital AS b
WHERE
a.dguid = b.er_dguid;
-- Make geometries valid
UPDATE
silver.er_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX er_2021_cartographic_geom_idx ON silver.er_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+47 -6
View File
@@ -6,9 +6,9 @@ Federal Electoral Districts
Definition here: https://web.archive.org/web/20240731061905/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo025
*/
-- 2021 vintage, 2013 representation order;
DROP TABLE IF EXISTS silver.fed_2021_2013;
CREATE TABLE silver.fed_2021_2013 AS
-- 2021 vintage, 2013 representation order. Digital boundary;
DROP TABLE IF EXISTS silver.fed_2021_2013_digital;
CREATE TABLE silver.fed_2021_2013_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -30,7 +30,7 @@ SELECT DISTINCT
fed.fedfname AS fed_fr_name,
fed.geom
FROM silver.dissemination_geographies_relationship_2021 AS dgr
LEFT JOIN silver.pr_2021 AS pr
LEFT JOIN silver.pr_2021_digital AS pr
ON dgr.pr_dguid = pr.pr_dguid
LEFT JOIN bronze.lfed000a21a_e AS fed
ON dgr.fed_dguid = fed.dguid
@@ -38,13 +38,54 @@ WHERE dgr.fed_dguid IS NOT null;
-- Make geometries valid
UPDATE
silver.fed_2021_2013
silver.fed_2021_2013_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX fed_2021_2013_geom_idx ON silver.fed_2021_2013 USING gist (geom) WITH (
CREATE INDEX fed_2021_2013_digital_geom_idx ON silver.fed_2021_2013_digital USING gist (geom) WITH (
fillfactor = 100
);
-- 2021 vintage, 2013 representation order. Cartographic boundary;
DROP TABLE IF EXISTS silver.fed_2021_2013_cartographic;
CREATE TABLE silver.fed_2021_2013_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.fed_dguid,
b.fed_name,
b.fed_en_name,
b.fed_fr_name,
a.geom
FROM
bronze.lfed000b21a_e AS a,
silver.fed_2021_2013_digital AS b
WHERE a.dguid = b.fed_dguid;
-- Make geometries valid
UPDATE
silver.fed_2021_2013_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX fed_2021_2013_cartographic_geom_idx ON silver.fed_2021_2013_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+44 -5
View File
@@ -6,8 +6,9 @@ Forward Sortation Areas
Definition here: https://web.archive.org/web/20241102112247/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/Definition-eng.cfm?ID=geo036
*/
DROP TABLE IF EXISTS silver.fsa_2021;
CREATE TABLE silver.fsa_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.fsa_2021_digital;
CREATE TABLE silver.fsa_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -26,18 +27,56 @@ SELECT DISTINCT
fsa.dguid AS fsa_dguid,
fsa.geom
FROM bronze.lfsa000a21a_e AS fsa,
silver.pr_2021 AS pr
silver.pr_2021_digital AS pr
WHERE concat('2021A0002', fsa.pruid) = pr.pr_dguid;
-- Make geometries valid
UPDATE
silver.fsa_2021
silver.fsa_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX fsa_2021_geom_idx ON silver.fsa_2021 USING gist (geom) WITH (
CREATE INDEX fsa_2021_digital_geom_idx ON silver.fsa_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.fsa_2021_cartographic;
CREATE TABLE silver.fsa_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.fsa_dguid,
a.geom
FROM
bronze.lfsa000b21a_e AS a,
silver.fsa_2021_digital AS b
WHERE a.dguid = b.fsa_dguid;
-- Make geometries valid
UPDATE
silver.fsa_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX fsa_2021_cartographic_geom_idx ON silver.fsa_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
+260 -26
View File
@@ -6,9 +6,9 @@ Geographic Regions of Canada
Definition here: https://web.archive.org/web/20240624230708/https://www150.statcan.gc.ca/n1/pub/92-195-x/2021001/geo/region/region-eng.htm
*/
-- With geometries;
DROP TABLE IF EXISTS silver.grc_2021;
CREATE TABLE silver.grc_2021 AS
-- With geometries. Digital boundary;
DROP TABLE IF EXISTS silver.grc_2021_digital;
CREATE TABLE silver.grc_2021_digital AS
WITH territories AS (
SELECT
'2021A00016' AS grc_dguid,
@@ -71,7 +71,7 @@ final AS (
territories.*
FROM
territories,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -82,7 +82,7 @@ final AS (
prairies.*
FROM
prairies,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -93,7 +93,7 @@ final AS (
atlantic.*
FROM
atlantic,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -104,7 +104,7 @@ final AS (
the_rest.*
FROM
the_rest,
silver.country_2021 AS country
silver.country_2021_digital AS country
)
SELECT *
@@ -113,14 +113,131 @@ FROM
-- Make geometries valid
UPDATE
silver.grc_2021
silver.grc_2021_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX grc_2021_geom_idx ON silver.grc_2021
CREATE INDEX grc_2021_digital_geom_idx ON silver.grc_2021_digital
USING gist (geom) WITH (fillfactor = 100);
-- With geometries. Cartographic boundary;
DROP TABLE IF EXISTS silver.grc_2021_cartographic;
CREATE TABLE silver.grc_2021_cartographic AS
WITH territories AS (
SELECT
'2021A00016' AS grc_dguid,
'Territories' AS grc_en_name,
'Territoires' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b21a_e
WHERE
pruid IN ('60', '61', '62')
),
atlantic AS (
SELECT
'2021A00011' AS grc_dguid,
'Atlantic' AS grc_en_name,
'Atlantique' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b21a_e
WHERE
pruid IN ('10', '11', '12', '13')
),
prairies AS (
SELECT
'2021A00014' AS grc_dguid,
'Prairies' AS grc_en_name,
'Prairies' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b21a_e
WHERE
pruid IN ('48', '47', '46')
),
the_rest AS (
SELECT
CASE
WHEN pruid = '59' THEN '2021A00015'
WHEN pruid = '35' THEN '2021A00013'
WHEN pruid = '24' THEN '2021A00012'
END AS grc_dguid,
prename AS grc_en_name,
prfname AS grc_fr_name,
geom
FROM
bronze.lpr_000b21a_e
WHERE
pruid IN ('59', '35', '24')
),
final AS (
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
territories.*
FROM
territories,
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
prairies.*
FROM
prairies,
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
atlantic.*
FROM
atlantic,
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
the_rest.*
FROM
the_rest,
silver.country_2021_digital AS country
)
SELECT *
FROM
final;
-- Make geometries valid
UPDATE
silver.grc_2021_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX grc_2021_cartographic_geom_idx ON silver.grc_2021_cartographic
USING gist (geom) WITH (fillfactor = 100);
-- 2021 without geometries, and with pr_dguid;
@@ -188,7 +305,7 @@ final AS (
territories.*
FROM
territories,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -199,7 +316,7 @@ final AS (
prairies.*
FROM
prairies,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -210,7 +327,7 @@ final AS (
atlantic.*
FROM
atlantic,
silver.country_2021 AS country
silver.country_2021_digital AS country
UNION
SELECT
country.country_dguid,
@@ -221,7 +338,7 @@ final AS (
the_rest.*
FROM
the_rest,
silver.country_2021 AS country
silver.country_2021_digital AS country
)
SELECT *
@@ -232,9 +349,9 @@ FROM
Definition here: https://web.archive.org/web/20240224030001/https://www12.statcan.gc.ca/census-recensement/2016/ref/dict/geo027a-eng.cfm
*/
-- With geometries;
DROP TABLE IF EXISTS silver.grc_2016;
CREATE TABLE silver.grc_2016 AS
-- With geometries. Digital boundary;
DROP TABLE IF EXISTS silver.grc_2016_digital;
CREATE TABLE silver.grc_2016_digital AS
WITH territories AS (
SELECT
'2016A00016' AS grc_dguid,
@@ -297,7 +414,7 @@ final AS (
territories.*
FROM
territories,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -308,7 +425,7 @@ final AS (
prairies.*
FROM
prairies,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -319,7 +436,7 @@ final AS (
atlantic.*
FROM
atlantic,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -330,7 +447,7 @@ final AS (
the_rest.*
FROM
the_rest,
silver.country_2016 AS country
silver.country_2016_digital AS country
)
SELECT *
@@ -339,14 +456,131 @@ FROM
-- Make geometries valid
UPDATE
silver.grc_2016
silver.grc_2016_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX grc_2016_geom_idx ON silver.grc_2016
CREATE INDEX grc_2016_digital_geom_idx ON silver.grc_2016_digital
USING gist (geom) WITH (fillfactor = 100);
-- With geometries. Cartographic boundary;
DROP TABLE IF EXISTS silver.grc_2016_cartographic;
CREATE TABLE silver.grc_2016_cartographic AS
WITH territories AS (
SELECT
'2016A00016' AS grc_dguid,
'Territories' AS grc_en_name,
'Territoires' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b16a_e
WHERE
pruid IN ('60', '61', '62')
),
atlantic AS (
SELECT
'2016A00011' AS grc_dguid,
'Atlantic' AS grc_en_name,
'Atlantique' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b16a_e
WHERE
pruid IN ('10', '11', '12', '13')
),
prairies AS (
SELECT
'2016A00014' AS grc_dguid,
'Prairies' AS grc_en_name,
'Prairies' AS grc_fr_name,
ST_UNION(geom) AS geom
FROM
bronze.lpr_000b16a_e
WHERE
pruid IN ('48', '47', '46')
),
the_rest AS (
SELECT
CASE
WHEN pruid = '59' THEN '2016A00015'
WHEN pruid = '35' THEN '2016A00013'
WHEN pruid = '24' THEN '2016A00012'
END AS grc_dguid,
prename AS grc_en_name,
prfname AS grc_fr_name,
geom
FROM
bronze.lpr_000b16a_e
WHERE
pruid IN ('59', '35', '24')
),
final AS (
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
territories.*
FROM
territories,
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
prairies.*
FROM
prairies,
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
atlantic.*
FROM
atlantic,
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
country.country_en_name,
country.country_fr_name,
country.country_en_abbreviation,
country.country_fr_abbreviation,
the_rest.*
FROM
the_rest,
silver.country_2016_digital AS country
)
SELECT *
FROM
final;
-- Make geometries valid
UPDATE
silver.grc_2016_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX grc_2016_cartographic_geom_idx ON silver.grc_2016_cartographic
USING gist (geom) WITH (fillfactor = 100);
-- 2016 without geometries, and with pr_dguid;
@@ -415,7 +649,7 @@ final AS (
territories.*
FROM
territories,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -426,7 +660,7 @@ final AS (
prairies.*
FROM
prairies,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -437,7 +671,7 @@ final AS (
atlantic.*
FROM
atlantic,
silver.country_2016 AS country
silver.country_2016_digital AS country
UNION
SELECT
country.country_dguid,
@@ -448,7 +682,7 @@ final AS (
the_rest.*
FROM
the_rest,
silver.country_2016 AS country
silver.country_2016_digital AS country
)
SELECT *
+48 -5
View File
@@ -6,8 +6,9 @@ Population Centres
Definition here: https://web.archive.org/web/20250324222733/https://www12.statcan.gc.ca/census-recensement/2021/ref/dict/az/definition-eng.cfm?ID=geo049a
*/
DROP TABLE IF EXISTS silver.pop_ctr_2021;
CREATE TABLE silver.pop_ctr_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.pop_ctr_2021_digital;
CREATE TABLE silver.pop_ctr_2021_digital AS
SELECT DISTINCT
pr.country_dguid,
pr.country_en_name,
@@ -34,19 +35,61 @@ LEFT JOIN bronze.lpc_000a21a_e AS pop_ctr
ON
concat(gaf.pop_ctr_dguid, gaf.pop_ctr_p_dguid)
= concat(pop_ctr.dguid, pop_ctr.dguidp)
LEFT JOIN silver.pr_2021 AS pr
LEFT JOIN silver.pr_2021_digital AS pr
ON gaf.pr_dguid = pr.pr_dguid
WHERE gaf.pop_ctr_dguid IS NOT null OR gaf.pop_ctr_p_dguid IS NOT null;
-- Make geometries valid
UPDATE
silver.pop_ctr_2021
silver.pop_ctr_2021_digital
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX pop_ctr_2021_geom_idx ON silver.pop_ctr_2021 USING gist (
CREATE INDEX pop_ctr_2021_digital_geom_idx ON silver.pop_ctr_2021_digital USING gist (
geom
) WITH (fillfactor = 100);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.pop_ctr_2021_cartographic;
CREATE TABLE silver.pop_ctr_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
b.pop_ctr_dguid,
b.pop_ctr_p_dguid,
b.pop_ctr_name,
b.pop_ctr_type,
b.pop_ctr_class,
a.geom
FROM
bronze.lpc_000b21a_e AS a,
silver.pop_ctr_2021_digital AS b
WHERE concat(b.pop_ctr_dguid, b.pop_ctr_p_dguid) = concat(a.dguid, a.dguidp);
-- Make geometries valid
UPDATE
silver.pop_ctr_2021_cartographic
SET
geom = st_makevalid(geom)
WHERE
st_isvalid(geom) = 'f';
-- Create spatial index
CREATE INDEX pop_ctr_2021_cartographic_geom_idx ON silver.pop_ctr_2021_cartographic USING gist (
geom
) WITH (fillfactor = 100);
+86 -8
View File
@@ -6,8 +6,9 @@ Provinces and territories
Definition here: https://web.archive.org/web/20240402175445/https://www150.statcan.gc.ca/n1/pub/92-195-x/2021001/geo/prov/prov-eng.htm
*/
DROP TABLE IF EXISTS silver.pr_2021;
CREATE TABLE silver.pr_2021 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.pr_2021_digital;
CREATE TABLE silver.pr_2021_digital AS
SELECT DISTINCT
grc.country_dguid,
grc.country_en_name,
@@ -46,14 +47,52 @@ WHERE
-- Make geometries valid
UPDATE
silver.pr_2021
silver.pr_2021_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX pr_2021_geom_idx ON pr_2021 USING gist (geom) WITH (
CREATE INDEX pr_2021_digital_geom_idx ON pr_2021_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.pr_2021_cartographic;
CREATE TABLE silver.pr_2021_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
a.geom
FROM
bronze.lpr_000b21a_e AS a,
silver.pr_2021_digital AS b
WHERE
b.pr_dguid = a.dguid;
-- Make geometries valid
UPDATE
silver.pr_2021_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX pr_2021_cartographic_geom_idx ON pr_2021_cartographic USING gist (geom) WITH (
fillfactor = 100
);
@@ -61,8 +100,9 @@ CREATE INDEX pr_2021_geom_idx ON pr_2021 USING gist (geom) WITH (
Definition here: https://web.archive.org/web/20241104061057/https://www12.statcan.gc.ca/census-recensement/2016/ref/dict/geo038-eng.cfm
*/
DROP TABLE IF EXISTS silver.pr_2016;
CREATE TABLE silver.pr_2016 AS
-- Digital boundary;
DROP TABLE IF EXISTS silver.pr_2016_digital;
CREATE TABLE silver.pr_2016_digital AS
SELECT DISTINCT
grc.country_dguid,
grc.country_en_name,
@@ -101,13 +141,51 @@ WHERE
-- Make geometries valid
UPDATE
silver.pr_2016
silver.pr_2016_digital
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX pr_2016_geom_idx ON pr_2016 USING gist (geom) WITH (
CREATE INDEX pr_2016_digital_geom_idx ON pr_2016_digital USING gist (geom) WITH (
fillfactor = 100
);
-- Cartographic boundary;
DROP TABLE IF EXISTS silver.pr_2016_cartographic;
CREATE TABLE silver.pr_2016_cartographic AS
SELECT DISTINCT
b.country_dguid,
b.country_en_name,
b.country_fr_name,
b.country_en_abbreviation,
b.country_fr_abbreviation,
b.grc_dguid,
b.grc_en_name,
b.grc_fr_name,
b.pr_dguid,
b.pr_en_name,
b.pr_fr_name,
b.pr_en_abbreviation,
b.pr_fr_abbreviation,
b.pr_iso_code,
a.geom
FROM
bronze.lpr_000b16a_e AS a,
silver.pr_2016_digital AS b
WHERE
b.pr_dguid = CONCAT('2016A0002', a.pruid);
-- Make geometries valid
UPDATE
silver.pr_2016_cartographic
SET
geom = ST_MAKEVALID(geom)
WHERE
ST_ISVALID(geom) = 'f';
-- Create spatial index
CREATE INDEX pr_2016_cartographic_geom_idx ON pr_2016_cartographic USING gist (geom) WITH (
fillfactor = 100
);