# GUY_2_human_2006_population.properties 
#
# This file contains population values for GUYANA
#
#
#
# /*********************************************************************************************
#
# * 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 = GUY
#
#
#
# The administration level of the population data
#
ADMIN_LEVEL = 2
#
#
#
# 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.statisticsguyana.gov.gy/
#
# SOURCE = https://www.cia.gov/library/publications/the-world-factbook/
#
#
#
# The population identifier
#
POPULATION = human
#
#
#
# The year the data is valid
#
YEAR = 2006
#
#
#
# Level 1 (admin 1 = e.g., state)
#
# Level 2 (admin 2 = e.g., county)
#
#
#
GY-PM-G080002 = 42472
GY-PM-G080001 = 16079
GY-PT-G090001 = 10268
GY-UT-G110002 = 375
GY-PT-G090002 = 2044
GY-UT-G110001 = 23173
GY-UD-G100001 = 48708
GY-UD-G100002 = 3777
GY-ES-G060003 = 34172
GY-BAW-G020002 = 12524
GY-ES-G060004 = 59948
GY-BAW-G020001 = 15381
GY-CU-G030001 = 5400
GY-ES-G060001 = 12131
GY-CU-G030002 = 16739
GY-ES-G060002 = 6013
GY-MA-G070001 = 31931
GY-EB-G050003 = 16050
GY-EB-G050004 = 3152
GY-EB-G050001 = 37871
GY-MA-G070002 = 52704
GY-DE-G040002 = 20776
GY-EB-G050002 = 24276
GY-DE-G040001 = 259472
GY-EB-G050007 = 3379
GY-EB-G050005 = 6641
GY-EB-G050006 = 1788

