# NER_0_human_2006_population.properties
#
# This file contains population values for Niger
#
#/*******************************************************************************
#
# * 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
#
# *******************************************************************************/
#
#
#
# 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 = NER
#
#
#
# The administration level of the graph data
#
ADMIN_LEVEL = 0
#
#
#
# This is the date range for which the 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
#
# The value was sampled in June and represents the average for the year.
#
SOURCE =  https://www.cia.gov/cia/publications/factbook/geos/ng.html
#
#
#
# The population identifier
#
POPULATION = human
#
#
#
# The year the data is valid
#
YEAR = 2006
#
#
#
# The key is the ISO-3166-1 alpha3 three letter identifier of the country
#
# The units are individuals
#
#
#
NER = 12525094

