[GRASS-SVN] r62900 - in grass-addons/grass7/vector: . v.in.gns
svn_grass at osgeo.org
svn_grass at osgeo.org
Mon Nov 24 15:34:23 PST 2014
Author: lucadelu
Date: 2014-11-24 15:34:23 -0800 (Mon, 24 Nov 2014)
New Revision: 62900
Added:
grass-addons/grass7/vector/v.in.gns/
grass-addons/grass7/vector/v.in.gns/v.in.gns.py
Removed:
grass-addons/grass7/vector/v.in.gns/v.in.gns.py
Log:
v.in.gns move from trunk to addons
Property changes on: grass-addons/grass7/vector/v.in.gns
___________________________________________________________________
Added: svn:mergeinfo
+ /grass/branches/releasebranch_7_0/scripts/v.in.gns:62348
Deleted: grass-addons/grass7/vector/v.in.gns/v.in.gns.py
===================================================================
--- grass/trunk/scripts/v.in.gns/v.in.gns.py 2014-11-24 15:42:29 UTC (rev 62885)
+++ grass-addons/grass7/vector/v.in.gns/v.in.gns.py 2014-11-24 23:34:23 UTC (rev 62900)
@@ -1,151 +0,0 @@
-#!/usr/bin/env python
-
-############################################################################
-#
-# MODULE: v.in.gns
-#
-# AUTHOR(S): Markus Neteler, neteler itc it
-# Converted to Python by Glynn Clements
-#
-# PURPOSE: Import GEOnet Names Server (GNS) country files into a GRASS vector map
-# http://earth-info.nga.mil/gns/html/
-# -> Download Names Files for Countries and Territories (FTP)
-#
-# Column names: http://earth-info.nga.mil/gns/html/help.htm
-#
-# COPYRIGHT: (c) 2005 GRASS Development Team
-#
-# This program is free software under the GNU General Public
-# License (>=v2). Read the file COPYING that comes with GRASS
-# for details.
-#
-# TODO: - see below in the code
-# - add extra columns explaining some column acronyms,
-# e.g. FC (Feature Classification)
-#############################################################################
-
-#%module
-#% description: Imports US-NGA GEOnet Names Server (GNS) country files into a GRASS vector points map.
-#% keywords: vector
-#% keywords: import
-#% keywords: gazetteer
-#%end
-#%option G_OPT_F_INPUT
-#% description: Name of input uncompressed GNS file from NGA (with .txt extension)
-#%end
-#%option G_OPT_V_OUTPUT
-#% required: no
-#%end
-
-import sys
-import os
-from grass.script.utils import try_remove, basename, parse_key_val
-from grass.script import core as grass
-from grass.script import vector as vgrass
-
-def main():
- fileorig = options['input']
- filevect = options['output']
-
- if not filevect:
- filevect = basename(fileorig, 'txt')
-
- #are we in LatLong location?
- s = grass.read_command("g.proj", flags='j')
- kv = parse_key_val(s)
- if kv['+proj'] != 'longlat':
- grass.fatal(_("This module only operates in LatLong/WGS84 locations"))
-
- #### setup temporary file
- tmpfile = grass.tempfile()
-
- coldescs = [("RC", "rc integer"),
- ("UFI", "uf1 integer"),
- ("UNI", "uni integer"),
- ("LAT", "lat double precision"),
- ("LONG", "lon double precision"),
- ("DMS_LAT", "dms_lat varchar(6)"),
- ("DMS_LONG", "dms_long varchar(7)"),
- ("UTM", "utm varchar(4)"),
- ("JOG", "jog varchar(7)"),
- ("FC", "fc varchar(1)"),
- ("DSG", "dsg varchar(5)"),
- ("PC", "pc integer"),
- ("CC1", "cci varchar(2)"),
- ("ADM1", "adm1 varchar(2)"),
- ("ADM2", "adm2 varchar(200)"),
- ("DIM", "dim integer"),
- ("CC2", "cc2 varchar(2)"),
- ("NT", "nt varchar(1)"),
- ("LC", "lc varchar(3)"),
- ("SHORT_FORM", "shortform varchar(128)"),
- ("GENERIC", "generic varchar(128)"),
- ("SORT_NAME", "sortname varchar(200)"),
- ("FULL_NAME", "fullname varchar(200)"),
- ("FULL_NAME_ND","funamesd varchar(200)"),
- ("MODIFY_DATE", "mod_date date")]
-
- colnames = [desc[0] for desc in coldescs]
- coltypes = dict([(desc[0], 'integer' in desc[1]) for desc in coldescs])
-
- header = None
- num_places = 0
- inf = file(fileorig)
- outf = file(tmpfile, 'wb')
- for line in inf:
- fields = line.rstrip('\r\n').split('\t')
- if not header:
- header = fields
- continue
- vars = dict(zip(header, fields))
- fields2 = []
- for col in colnames:
- if col in vars:
- if coltypes[col] and vars[col] == '':
- fields2.append('0')
- else:
- fields2.append(vars[col])
- else:
- if coltypes[col]:
- fields2.append('0')
- else:
- fields2.append('')
- line2 = ';'.join(fields2) + '\n'
- outf.write(line2)
- num_places += 1
- outf.close()
- inf.close()
-
- grass.message(_("Converted %d place names.") % num_places)
-
- #TODO: fix dms_lat,dms_long DDMMSS -> DD:MM:SS
- # Solution:
- # IN=DDMMSS
- # DEG=`echo $IN | cut -b1,2`
- # MIN=`echo $IN | cut -b3,4`
- # SEC=`echo $IN | cut -b5,6`
- # DEG_STR="$DEG:$MIN:$SEC"
-
- #modifications (to match DBF 10 char column name limit):
- # short_form -> shortform
- # sort_name -> sortname
- # full_name -> fullname
- # full_name_sd -> funamesd
-
- # pump data into GRASS:
-
- columns = [desc[1] for desc in coldescs]
-
- grass.run_command('v.in.ascii', cat = 0, x = 5, y = 4, sep = ';',
- input = tmpfile, output = filevect,
- columns = columns)
-
- try_remove(tmpfile)
-
- # write cmd history:
- vgrass.vector_history(filevect)
-
-if __name__ == "__main__":
- options, flags = grass.parser()
- main()
-
Copied: grass-addons/grass7/vector/v.in.gns/v.in.gns.py (from rev 62899, grass/trunk/scripts/v.in.gns/v.in.gns.py)
===================================================================
--- grass-addons/grass7/vector/v.in.gns/v.in.gns.py (rev 0)
+++ grass-addons/grass7/vector/v.in.gns/v.in.gns.py 2014-11-24 23:34:23 UTC (rev 62900)
@@ -0,0 +1,157 @@
+#!/usr/bin/env python
+
+############################################################################
+#
+# MODULE: v.in.gns
+#
+# AUTHOR(S): Markus Neteler, neteler itc it
+# Converted to Python by Glynn Clements
+#
+# PURPOSE: Import GEOnet Names Server (GNS) country files into a GRASS vector map
+# http://earth-info.nga.mil/gns/html/
+# -> Download Names Files for Countries and Territories (FTP)
+#
+# Column names: http://earth-info.nga.mil/gns/html/help.htm
+#
+# COPYRIGHT: (c) 2005 GRASS Development Team
+#
+# This program is free software under the GNU General Public
+# License (>=v2). Read the file COPYING that comes with GRASS
+# for details.
+#
+# TODO: - see below in the code
+# - add extra columns explaining some column acronyms,
+# e.g. FC (Feature Classification)
+#############################################################################
+
+#%module
+#% description: Imports US-NGA GEOnet Names Server (GNS) country files into a GRASS vector points map.
+#% keywords: vector
+#% keywords: import
+#% keywords: gazetteer
+#%end
+#%option G_OPT_F_INPUT
+#% description: Name of input uncompressed GNS file from NGA (with .txt extension)
+#%end
+#%option G_OPT_V_OUTPUT
+#% required: no
+#%end
+
+from grass.script.utils import try_remove, basename, parse_key_val
+from grass.script import core as grass
+from grass.script import vector as vgrass
+
+
+def main():
+ fileorig = options['input']
+ filevect = options['output']
+
+ if not filevect:
+ filevect = basename(fileorig, 'txt')
+
+ #are we in LatLong location?
+ s = grass.read_command("g.proj", flags='j')
+ kv = parse_key_val(s)
+ if kv['+proj'] != 'longlat':
+ grass.fatal(_("This module only operates in LatLong/WGS84 locations"))
+
+ #### setup temporary file
+ tmpfile = grass.tempfile()
+
+ coldescs = [("RC", "rc integer"),
+ ("UFI", "uf1 integer"),
+ ("UNI", "uni integer"),
+ ("LAT", "lat double precision"),
+ ("LONG", "lon double precision"),
+ ("DMS_LAT", "dms_lat integer"),
+ ("DMS_LONG", "dms_long integer"),
+ ("MGRS", "mgrs varchar(15)"),
+ ("JOG", "jog varchar(7)"),
+ ("FC", "fc varchar(1)"),
+ ("DSG", "dsg varchar(6)"),
+ ("PC", "pc integer"),
+ ("CC1", "cci varchar(255)"),
+ ("ADM1", "adm1 varchar(2)"),
+ ("POP", "pop integer"),
+ ("ELEV", "elev double precision"),
+ ("CC2", "cc2 varchar(255)"),
+ ("NT", "nt varchar(2)"),
+ ("LC", "lc varchar(3)"),
+ ("SHORT_FORM", "shortform varchar(128)"),
+ ("GENERIC", "generic varchar(128)"),
+ ("SORT_NAME_RO", "sortnamero varchar(255)"),
+ ("FULL_NAME_RO", "fullnamero varchar(255)"),
+ ("FULL_NAME_ND_RO", "funamesdro varchar(255)"),
+ ("SORT_NAME_RG", "sortnamerg varchar(255)"),
+ ("FULL_NAME_RG", "fullnamerg varchar(255)"),
+ ("FULL_NAME_ND_RG", "funamesdrg varchar(255)"),
+ ("NOTE", "note varchar(4000)"),
+ ("MODIFY_DATE", "mod_date date"),
+ ("DISPLAY", "display varchar(255)"),
+ ("NAME_RANK", "namerank integer"),
+ ("NAME_LINK", "namelink integer"),
+ ("TRANSL_CD", "translcd varchar(32)"),
+ ("NM_MODIFY_DATE", "nmmodifydate varchar(10)")]
+
+ colnames = [desc[0] for desc in coldescs]
+ coltypes = dict([(desc[0], 'integer' in desc[1]) for desc in coldescs])
+
+ header = None
+ num_places = 0
+ inf = file(fileorig)
+ outf = file(tmpfile, 'wb')
+ for line in inf:
+ fields = line.rstrip('\r\n').split('\t')
+ if not header:
+ header = fields
+ continue
+ vars = dict(zip(header, fields))
+ fields2 = []
+ for col in colnames:
+ if col in vars:
+ if coltypes[col] and vars[col] == '':
+ fields2.append('0')
+ else:
+ fields2.append(vars[col])
+ else:
+ if coltypes[col]:
+ fields2.append('0')
+ else:
+ fields2.append('')
+ line2 = ';'.join(fields2) + '\n'
+ outf.write(line2)
+ num_places += 1
+ outf.close()
+ inf.close()
+
+ grass.message(_("Converted %d place names.") % num_places)
+
+ #TODO: fix dms_lat,dms_long DDMMSS -> DD:MM:SS
+ # Solution:
+ # IN=DDMMSS
+ # DEG=`echo $IN | cut -b1,2`
+ # MIN=`echo $IN | cut -b3,4`
+ # SEC=`echo $IN | cut -b5,6`
+ # DEG_STR="$DEG:$MIN:$SEC"
+
+ #modifications (to match DBF 10 char column name limit):
+ # short_form -> shortform
+ # sort_name -> sortname
+ # full_name -> fullname
+ # full_name_sd -> funamesd
+
+ # pump data into GRASS:
+
+ columns = [desc[1] for desc in coldescs]
+
+ grass.run_command('v.in.ascii', cat=0, x=5, y=4, sep=';',
+ input=tmpfile, output=filevect, columns=columns)
+
+ try_remove(tmpfile)
+
+ # write cmd history:
+ vgrass.vector_history(filevect)
+
+if __name__ == "__main__":
+ options, flags = grass.parser()
+ main()
More information about the grass-commit
mailing list