# CHL_1_human_2006_population.properties 
#
# This file contains population values for CHILE
#
#
#
# /*********************************************************************************************
#
# * Copyright (c) 2006 IBM Corporation and others.
#
# * All rights reserved. This program and the accompanying materials
#
# * are made available under the terms of the Eclipse Public License v1.0
#
# * which accompanies this distribution, and is available at
#
# * http://www.eclipse.org/legal/epl-v10.html
#
# *
#
# * Contributors:
#
# *     IBM Corporation - initial API and implementation
#
# ***********************************************************************************************/
#
#
#
# /**********************************************************************************************
#
# * Key Format: 
#
# * 
#
# * 	 For level 1 data, the key is the ISO3166-2 code. An ISO3166-2 code is composed as follows: 
#
# * a two letter country code followed by up to three alphanumeric characters for the level 1 administration.
#
# *
#
# * 	 For level 2 data, the key is the ISO3166-2 code followed by six digits. The leftmost two digits indicate
#
# * the level 1 container of a level 2 administration (i.e. California is a level 1 container for Orange County
#
# * which is a level 2 administration).  The two digits were taken from a lexicographic sorting of all the
#
# * level 1 administrations within a country. Similarly, the four leftmost digits indicate a level 2 administration.
#
# * Again, these four digits are an index into the lexicographic sorting of all level 2 administrations within 
#
# * a level 1 administration. 
#
# ************************************************************************************************/
#
#
#
# This is the name of the class that will interpret the rest of the file's contents
#
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryPopulationLabelPropertyFileSpecification
#
#
#
# The ISO-3166-1 alpha3 code for the country
#
ISOKEY = CHL
#
#
#
# The administration level of the population data
#
ADMIN_LEVEL = 1
#
#
#
# This is the date range for which the population values in this file are valid 
#
# See http://purl.org/dc/terms/1.1/valid
#
VALID = start=2006-01-01; end=2006-12-31;
#
#
#
# This is the source of the data
#
SOURCE = Primary (https://www.cia.gov/library/publications/the-world-factbook/). 
#
# SOURCE = Distributions (subdivision ratios) validated against ORNL LandScan 2007(TM)/UT-Battelle, LLC 
#
# SOURCE = http://www.citypopulation.de/Chile.html
#
# SOURCE = http://www.ine.cl/ine/canales/chile_estadistico/home.php
#
# SOURCE = http://www.visitingchile.com/regiones/region-sur/region-bio-bio/provincia-arauco/provincia-arauco.php
#
# SOURCE = http://www.ine.cl/ine/canales/chile_estadistico/demografia_y_vitales/demografia/demografia.php
#
# SOURCE = https://www.cia.gov/library/publications/the-world-factbook/
#
#
#
# The population identifier
#
POPULATION = human
#
#
#
# The year the data is valid
#
YEAR = 2006
#
#
#
# State/Province
#
#
#
CL-BI = 385149
CL-GCR = 7541
CL-SGO = 2102903
CL-QUI = 261227
CL-TCA = 381239
CL-CAR = 43574
CL-CAU = 63100
CL-TOC = 23368
CL-PAL = 19697
CL-CON = 950704
CL-AI = 31464
CL-MIP = 628481
CL-PET = 79399
CL-ACO = 140623
CL-EL = 156782
CL-PAN = 3596
CL-ESP = 19980
CL-CBU = 152868
CL-AN = 279189
CL-MIL = 151690
CL-LIN = 275819
CL-LIM = 169587
CL-VAL = 883743
CL-AND = 101632
CL-MLL = 223305
CL-CLE = 154718
CL-CPT = 4167
CL-MA = 119664
CL-IQI = 243768
CL-CHG = 214818
CL-ARI = 147308
CL-VDI = 391382
CL-CUR = 267465
CL-ARC = 162961
CL-NUB = 476909
CL-OSR = 239248
CL-HUA = 71272
CL-TF = 7513
CL-TAL = 24222
CL-COP = 165870
CL-COR = 3543134
CL-ELQ = 385149
CL-LLA = 347347
CL-SAT = 141019
CL-ANT = 2172
CL-CTN = 722529
CL-CHN = 34815
CL-CPA = 84941
CL-CHP = 589435
CL-CHQ = 55734

