NAME
Geo::GNS::Parser - parse a GNS data file
SYNOPSIS
use Geo::GNS::Parser 'parse_file';
my $in_file = 'ja.txt';
my %lines;
my $n_entries;
my $n_places;
parse_file (file => $in_file, callback => \& callback);
print "$n_entries / $n_places\n";
exit;
sub callback
{
my (undef, $line) = @_;
$n_entries++;
my @parts = split /\t/, $_;
my $ufi = $line->{UFI};
if (my $e = $lines{$ufi}) {
print "Duplicate $ufi for $line->{FULL_NAME_RO} $e->{FULL_NAME_RO}\n";
}
else {
$lines{$ufi} = $line;
$n_places++;
}
}
(This example is included as synopsis.pl in the distribution.)
VERSION
This documents Geo::GNS::Parser version 0.02 corresponding to git commit dd93949b220dd7e8072228a93cebac75b6b536d3 released on Thu Jul 13 08:37:47 2017 +0900.
DESCRIPTION
Parse the GeoNET Names Server data
FUNCTIONS
parse_file
parse_file (file => 'ja.txt', data => \@array);
Parse the data in the file specified by file and put the lines into the array specified by the data parameter. Each line is added to the array as a hash reference with the keys given under "FIELDS", and the values taken from the read line.
parse_file (file => 'af.txt', callback => \& myroutine);
Parse the data in the file specified by file. As each line of data is parsed, call back the code routine specified by callback. The callback is called in the form
&{callback} (undef, \%line);
Possible options are
- file
-
The file name. This must be supplied or the module dies.
- data
-
An array reference.
- callback
-
A code reference to call back. If parse_file is called as
parse_file (%inputs);then the callback is called in the form
&{$inputs{callback}} ($inputs{callback_data}, \%line);where
%lineis a hash containing the parts of the line as specified under "FIELDS". - callback_data
-
User-specified data to pass to the callback routine. See "callback" above.
FIELDS
The fields in the data are as follows. The meanings of each field are explained at http://geonames.nga.mil/gns/html/gis_countryfiles.html.
- RC
- UFI
- UNI
- LAT
- LONG
- DMS_LAT
- DMS_LONG
- MGRS
- JOG
- FC
- DSG
- PC
- CC1
- ADM1
- POP
- ELEV
- CC2
- NT
- LC
- SHORT_FORM
- GENERIC
- SORT_NAME_RO
- FULL_NAME_RO
- FULL_NAME_ND_RO
- SORT_NAME_RG
- FULL_NAME_RG
- FULL_NAME_ND_RG
- NOTE
- MODIFY_DATE
SEE ALSO
- GeoNet Names Server
- geolocator
-
Geolocator is a Python project using this data.
On CPAN
As of 0.02, I am not aware of any other CPAN module which parses the GeoNET data. The following modules are related to geography.
HISTORY
- PrePAN
-
I proposed this module in 2012 on PrePAN: http://prepan.org/module/429En4oFbE.
- CPAN
-
I released this module to CPAN in July 2017.
AUTHOR
Ben Bullock, <bkb@cpan.org>
COPYRIGHT & LICENCE
This package and associated files are copyright (C) 2012-2017 Ben Bullock.
You can use, copy, modify and redistribute this package and associated files under the Perl Artistic Licence or the GNU General Public Licence.