# MOZ_1_human_2006_population.properties 
#
# This file contains population values for MOZAMBIQUE
#
#
#
# /*********************************************************************************************
#
# * 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 = MOZ
#
#
#
# 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 = https://www.cia.gov/library/publications/the-world-factbook/
#
#
#
# The population identifier
#
POPULATION = human
#
#
#
# The year the data is valid
#
YEAR = 2006
#
#
#
# State/Province
#
#
#
MZ-T = 1477893
MZ-G = 1364321
MZ-P = 1627794
MZ-A = 1009081
MZ-Q = 3713951
MZ-B = 1277853
MZ-S = 1655781
MZ-N = 3830284
MZ-MPM = 2283580
MZ-I = 1445966

