diff options
| author | mo khan <mo@mokhan.ca> | 2024-05-24 10:57:58 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2024-05-24 10:57:58 -0600 |
| commit | ce600e04b46cfab0f09d2f5b2503d84da675f406 (patch) | |
| tree | 24811ae878d092a0a0d96485fd510da477bc2536 | |
| parent | 344a51f2ee799e8070a36631d199a38ff339bd8c (diff) | |
Add demographic counts to README
| -rwxr-xr-x | bin/community | 157 | ||||
| -rw-r--r-- | templates/community.md.erb | 12 |
2 files changed, 160 insertions, 9 deletions
diff --git a/bin/community b/bin/community index 8e1db56..a95b2c2 100755 --- a/bin/community +++ b/bin/community @@ -18,19 +18,160 @@ class Community # https://data.calgary.ca/Demographics/Census-by-Community-2019/rkfr-buzb/about_data # CLASS,CLASS_CODE,COMM_CODE,NAME,SECTOR,SRG,COMM_STRUCTURE,CNSS_YR,FOIP_IND,RES_CNT,DWELL_CNT,PRSCH_CHLD,ELECT_CNT,EMPLYD_CNT,OWNSHP_CNT,DOG_CNT,CAT_CNT,PUB_SCH,SEP_SCH,PUBSEP_SCH,OTHER_SCH,UNKNWN_SCH,SING_FAMLY,DUPLEX,MULTI_PLEX,APARTMENT,TOWN_HOUSE,MANUF_HOME,CONV_STRUC,COMUNL_HSE,RES_COMM,OTHER_RES,NURSING_HM,OTHER_INST,HOTEL_CNT,OTHER_MISC,APT_NO_RES,APT_OCCPD,APT_OWNED,APT_PERSON,APT_VACANT,APT_UC,APT_NA,CNV_NO_RES,CNV_OCCPD,CNV_OWNED,CNV_PERSON,CNV_VACANT,CNV_UC,CNV_NA,DUP_NO_RES,DUP_OCCPD,DUP_OWNED,DUP_PERSON,DUP_VACANT,DUP_UC,DUP_NA,MFH_NO_RES,MFH_OCCPD,MFH_OWNED,MFH_PERSON,MFH_VACANT,MFH_UC,MFH_NA,MUL_NO_RES,MUL_OCCPD,MUL_OWNED,MUL_PERSON,MUL_VACANT,MUL_UC,MUL_NA,OTH_NO_RES,OTH_OCCPD,OTH_OWNED,OTH_PERSON,OTH_VACANT,OTH_UC,OTH_NA,TWN_NO_RES,TWN_OCCPD,TWN_OWNED,TWN_PERSON,TWN_VACANT,TWN_UC,TWN_NA,SF_NO_RES,SF_OCCPD,SF_OWNED,SF_PERSON,SF_VACANT,SF_UC,SF_NA,OTH_STRTY,DWELSZ_1,DWELSZ_2,DWELSZ_3,DWELSZ_4_5,DWELSZ_6,MALE_CNT,FEMALE_CNT,MALE_0_4,MALE_5_14,MALE_15_19,MALE_20_24,MALE_25_34,MALE_35_44,MALE_45_54,MALE_55_64,MALE_65_74,MALE_75,FEM_0_4,FEM_5_14,FEM_15_19,FEM_20_24,FEM_25_34,FEM_35_44,FEM_45_54,FEM_55_64,FEM_65_74,FEM_75,MF_0_4,MF_5_14,MF_15_19,MF_20_24,MF_25_34,MF_35_44,MF_45_54,MF_55_64,MF_65_74,MF_75,OTHER_CNT,OTHER_0_4,OTHER_5_14,OTHER_15_19,OTHER_20_24,OTHER_25_34,OTHER_35_44,OTHER_45_54,OTHER_55_64,OTHER_65_74,OTHER_75,multipolygon COLUMNS = { - classification: 0, - classification_code: 1, - community_code: 2, - community: 3, - sector: 4, - srg: 5, + classification: "CLASS", + classification_code: "CLASS_CODE", + community_code: "COMM_CODE", + name: "NAME", + sector: "SECTOR", + srg: "SRG", + # x: "COMM_STRUCTURE", + # x: "CNSS_YR", + # x: "FOIP_IND", + residents_count: "RES_CNT", + dwellings_count: "DWELL_CNT", + preschool_children_count: "PRSCH_CHLD", + voter_count: "ELECT_CNT", + employees_count: "EMPLYD_CNT", + homeowners_count: "OWNSHP_CNT", + dogs_count: "DOG_CNT", + cats_count: "CAT_CNT", + public_schools_count: "PUB_SCH", + other_schools_count: "SEP_SCH", + # x: "PUBSEP_SCH", + # x: "OTHER_SCH", + # x: "UNKNWN_SCH", + single_family_homes_count: "SING_FAMLY", + duplexes_count: "DUPLEX", + multiplex_count: "MULTI_PLEX", + apartment_count: "APARTMENT", + townhouse_count: "TOWN_HOUSE", + mobile_home_count: "MANUF_HOME", + # x: "CONV_STRUC", + # x: "COMUNL_HSE", + # x: "RES_COMM", + # x: "OTHER_RES", + # x: "NURSING_HM", + # x: "OTHER_INST", + # x: "HOTEL_CNT", + # x: "OTHER_MISC", + # x: "APT_NO_RES", + # x: "APT_OCCPD", + # x: "APT_OWNED", + # x: "APT_PERSON", + # x: "APT_VACANT", + # x: "APT_UC", + # x: "APT_NA", + # x: "CNV_NO_RES", + # x: "CNV_OCCPD", + # x: "CNV_OWNED", + # x: "CNV_PERSON", + # x: "CNV_VACANT", + # x: "CNV_UC", + # x: "CNV_NA", + # x: "DUP_NO_RES", + # x: "DUP_OCCPD", + # x: "DUP_OWNED", + # x: "DUP_PERSON", + # x: "DUP_VACANT", + # x: "DUP_UC", + # x: "DUP_NA", + # x: "MFH_NO_RES", + # x: "MFH_OCCPD", + # x: "MFH_OWNED", + # x: "MFH_PERSON", + # x: "MFH_VACANT", + # x: "MFH_UC", + # x: "MFH_NA", + # x: "MUL_NO_RES", + # x: "MUL_OCCPD", + # x: "MUL_OWNED", + # x: "MUL_PERSON", + # x: "MUL_VACANT", + # x: "MUL_UC", + # x: "MUL_NA", + # x: "OTH_NO_RES", + # x: "OTH_OCCPD", + # x: "OTH_OWNED", + # x: "OTH_PERSON", + # x: "OTH_VACANT", + # x: "OTH_UC", + # x: "OTH_NA", + # x: "TWN_NO_RES", + # x: "TWN_OCCPD", + # x: "TWN_OWNED", + # x: "TWN_PERSON", + # x: "TWN_VACANT", + # x: "TWN_UC", + # x: "TWN_NA", + # x: "SF_NO_RES", + # x: "SF_OCCPD", + # x: "SF_OWNED", + # x: "SF_PERSON", + # x: "SF_VACANT", + # x: "SF_UC", + # x: "SF_NA", + # x: "OTH_STRTY", + # x: "DWELSZ_1", + # x: "DWELSZ_2", + # x: "DWELSZ_3", + # x: "DWELSZ_4_5", + # x: "DWELSZ_6", + # male_count: "MALE_CNT", + # female_count: "FEMALE_CNT", + # male_0_4: "MALE_0_4", + # male_5_14: "MALE_5_14", + # male_5_19: "MALE_15_19", + # x: "MALE_20_24", + # x: "MALE_25_34", + # x: "MALE_35_44", + # x: "MALE_45_54", + # x: "MALE_55_64", + # x: "MALE_65_74", + # x: "MALE_75", + # x: "FEM_0_4", + # x: "FEM_5_14", + # x: "FEM_15_19", + # x: "FEM_20_24", + # x: "FEM_25_34", + # x: "FEM_35_44", + # x: "FEM_45_54", + # x: "FEM_55_64", + # x: "FEM_65_74", + # x: "FEM_75", + # x: "MF_0_4", + # x: "MF_5_14", + # x: "MF_15_19", + # x: "MF_20_24", + # x: "MF_25_34", + # x: "MF_35_44", + # x: "MF_45_54", + # x: "MF_55_64", + # x: "MF_65_74", + # x: "MF_75", + # x: "OTHER_CNT", + # x: "OTHER_0_4", + # x: "OTHER_5_14", + # x: "OTHER_15_19", + # x: "OTHER_20_24", + # x: "OTHER_25_34", + # x: "OTHER_35_44", + # x: "OTHER_45_54", + # x: "OTHER_55_64", + # x: "OTHER_65_74", + # x: "OTHER_75", + # x: "multipolygon", }.freeze + def initialize(row) @row = row end def name - @row[COLUMNS[:community]] + self[:name] + end + + def [](name) + @row[COLUMNS[name]] || @row.fetch(name.to_s.upcase) end def create_directory_in(root_dir) @@ -49,7 +190,7 @@ class Census end def each - CSV.foreach("data/Census_by_Community_2019_20240524.csv") do |row| + CSV.foreach("data/Census_by_Community_2019_20240524.csv", headers: true) do |row| yield Community.new(row) end end diff --git a/templates/community.md.erb b/templates/community.md.erb index a916173..37604c7 100644 --- a/templates/community.md.erb +++ b/templates/community.md.erb @@ -1 +1,11 @@ -# <%= name %> +# <%= name %> (<%= self[:community_code] %>) + +* # of Residents: <%= self[:residents_count] %> + +| Age | Male | Female | Non-binary | +| --- | ---- | ------ | ---------- | +| 20-24 | <%= self[:male_20_24] %> | <%= self[:fem_20_24] %> | <%= self[:other_20_24] %> | +| 25-34 | <%= self[:male_25_34] %> | <%= self[:fem_25_34] %> | <%= self[:other_25_34] %> | +| 35-44 | <%= self[:male_35_44] %> | <%= self[:fem_35_44] %> | <%= self[:other_35_44] %> | +| 45-54 | <%= self[:male_45_54] %> | <%= self[:fem_45_54] %> | <%= self[:other_45_54] %> | +| | <%= self[:male_cnt] %> | <%= self[:female_cnt] %> | <%= self[:other_cnt] %> | |
