[GRASS-SVN] r51269 - in grass/trunk/temporal: . t.rast.export
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Apr 5 16:46:38 EDT 2012
Author: huhabla
Date: 2012-04-05 13:46:38 -0700 (Thu, 05 Apr 2012)
New Revision: 51269
Added:
grass/trunk/temporal/t.rast.export/
grass/trunk/temporal/t.rast.export/t.rast.export.html
grass/trunk/temporal/t.rast.export/t.rast.export.py
grass/trunk/temporal/t.rast.export/test.t.rast.export.sh
Removed:
grass/trunk/temporal/t.rast.export/test.tr.export.sh
grass/trunk/temporal/t.rast.export/tr.export.html
grass/trunk/temporal/t.rast.export/tr.export.py
Modified:
grass/trunk/temporal/t.rast.export/Makefile
Log:
Using new naming scheme
Modified: grass/trunk/temporal/t.rast.export/Makefile
===================================================================
--- grass/trunk/temporal/tr.export/Makefile 2012-04-04 21:20:55 UTC (rev 51264)
+++ grass/trunk/temporal/t.rast.export/Makefile 2012-04-05 20:46:38 UTC (rev 51269)
@@ -1,6 +1,6 @@
MODULE_TOPDIR = ../../
-PGM = tr.export
+PGM = t.rast.export
include $(MODULE_TOPDIR)/include/Make/Script.make
Copied: grass/trunk/temporal/t.rast.export/t.rast.export.html (from rev 51264, grass/trunk/temporal/tr.export/tr.export.html)
===================================================================
Copied: grass/trunk/temporal/t.rast.export/t.rast.export.py (from rev 51264, grass/trunk/temporal/tr.export/tr.export.py)
===================================================================
--- grass/trunk/temporal/t.rast.export/t.rast.export.py (rev 0)
+++ grass/trunk/temporal/t.rast.export/t.rast.export.py 2012-04-05 20:46:38 UTC (rev 51269)
@@ -0,0 +1,228 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+############################################################################
+#
+# MODULE: t.rast.export
+# AUTHOR(S): Soeren Gebbert
+#
+# PURPOSE: Export a space time raster dataset
+# COPYRIGHT: (C) 2011 by the GRASS Development Team
+#
+# This program is free software under the GNU General Public
+# License (version 2). Read the file COPYING that comes with GRASS
+# for details.
+#
+#############################################################################
+
+#%module
+#% description: Export space time raster dataset
+#% keywords: temporal
+#% keywords: export
+#%end
+
+#%option G_OPT_STRDS_INPUT
+#%end
+
+#%option G_OPT_F_OUTPUT
+#% description: Name of a space time raster dataset archive
+#%end
+
+#%option
+#% key: workdir
+#% type: string
+#% description: Path to the work directory, default is /tmp
+#% required: no
+#% multiple: no
+#% answer: /tmp
+#%end
+
+
+#%option
+#% key: compression
+#% type: string
+#% description: Chose the compression of the tar archive
+#% required: no
+#% multiple: no
+#% options: no,gzip,bzip2
+#% answer: bzip2
+#%end
+
+#%option G_OPT_T_WHERE
+#%end
+
+import shutil
+import os
+import tarfile
+import tempfile
+import grass.script as grass
+import grass.temporal as tgis
+
+proj_file_name = "proj.txt"
+init_file_name = "init.txt"
+metadata_file_name = "metadata.txt"
+read_file_name = "readme.txt"
+list_file_name = "list.txt"
+tmp_tar_file_name = "archive"
+
+############################################################################
+
+def main():
+
+ # Get the options
+ input = options["input"]
+ output = options["output"]
+ compression = options["compression"]
+ workdir = options["workdir"]
+ where = options["where"]
+
+ # Make sure the temporal database exists
+ tgis.create_temporal_database()
+
+ mapset = grass.gisenv()["MAPSET"]
+
+ if input.find("@") >= 0:
+ id = input
+ else:
+ id = input + "@" + mapset
+
+ sp = tgis.space_time_raster_dataset(id)
+
+ if sp.is_in_db() == False:
+ grass.fatal(_("Space time %s dataset <%s> not found") % (sp.get_new_map_instance(None).get_type(), id))
+
+ # Save current working directory path
+ old_cwd = os.getcwd()
+
+ # Create the temporary directory and jump into it
+ new_cwd = tempfile.mkdtemp(dir=workdir)
+ os.chdir(new_cwd)
+
+ sp.select()
+
+ columns = "name,start_time,end_time,min,max,datatype"
+ rows = sp.get_registered_maps(columns, where, "start_time", None)
+
+ if compression == "gzip":
+ flag = "w:gz"
+ elif compression == "bzip2":
+ flag = "w:bz2"
+ else:
+ flag = "w"
+
+ # Open the tar archive to add the files
+ tar = tarfile.open(tmp_tar_file_name, flag)
+ list_file = open(list_file_name, "w")
+
+ fs = "|"
+
+ if rows:
+ for row in rows:
+ name = row["name"]
+ start = row["start_time"]
+ end = row["end_time"]
+ max_val = row["max"]
+ min_val = row["min"]
+ datatype = row["datatype"]
+ if not end:
+ end = start
+ string = "%s%s%s%s%s\n" % (name, fs, start, fs, end)
+ # Write the filename, the start_time and the end_time
+ list_file.write(string)
+
+ # Export the raster map with r.out.gdal as tif
+ out_name = name + ".tif"
+ if datatype == "CELL":
+ nodata = max_val + 1
+ if nodata < 256 and min_val >= 0:
+ gdal_type = "Byte"
+ elif nodata < 65536 and min_val >= 0:
+ gdal_type = "UInt16"
+ elif min_val >= 0:
+ gdal_type = "UInt32"
+ else:
+ gdal_type = "Int32"
+ ret = grass.run_command("r.out.gdal", flags="c", input=name, output=out_name, nodata=nodata, type=gdal_type, format="GTiff")
+ else:
+ ret = grass.run_command("r.out.gdal", flags="c", input=name, output=out_name, format="GTiff")
+ if ret != 0:
+ shutil.rmtree(new_cwd)
+ tar.close()
+ grass.fatal(_("Unable to export raster map <%s>" % name))
+
+ tar.add(out_name)
+
+ # Export the color rules
+ out_name = name + ".color"
+ ret = grass.run_command("r.colors.out", map=name, rules=out_name)
+ if ret != 0:
+ shutil.rmtree(new_cwd)
+ tar.close()
+ grass.fatal(_("Unable to export color rules for raster map <%s>" % name))
+
+ tar.add(out_name)
+
+ list_file.close()
+
+ # Write projection and metadata
+ proj = grass.read_command("g.proj", flags="j")
+
+ proj_file = open(proj_file_name, "w")
+ proj_file.write(proj)
+ proj_file.close()
+
+ init_file = open(init_file_name, "w")
+ # Create the init string
+ string = ""
+ string += "%s=%s\n" % ("temporal_type", sp.get_temporal_type())
+ string += "%s=%s\n" % ("semantic_type", sp.get_semantic_type())
+ string += "%s=%s\n" % ("number_of_maps", sp.metadata.get_number_of_maps())
+ north, south, east, west, top, bottom = sp.get_spatial_extent()
+ string += "%s=%s\n" % ("north", north)
+ string += "%s=%s\n" % ("south", south)
+ string += "%s=%s\n" % ("east", east)
+ string += "%s=%s\n" % ("west", west)
+ init_file.write(string)
+ init_file.close()
+
+ metadata = grass.read_command("t.info", input=id)
+ metadata_file = open(metadata_file_name, "w")
+ metadata_file.write(metadata)
+ metadata_file.close()
+
+ read_file = open(read_file_name, "w")
+ read_file.write("This space time raster dataset was exported with t.rast.export of GRASS GIS 7\n")
+ read_file.write("\n")
+ read_file.write("Files:\n")
+ #123456789012345678901234567890
+ read_file.write(" *.tif -- GeoTIFF time series raster files\n")
+ read_file.write(" *.color -- GRASS GIS raster color rules\n")
+ read_file.write("%13s -- Projection information in PROJ.4 format\n" % (proj_file_name))
+ read_file.write("%13s -- GRASS GIS space time raster dataset information\n" % (init_file_name))
+ read_file.write("%13s -- Time series file, lists all maps by name with interval\n" % (list_file_name))
+ read_file.write(" time stamps in ISO-Format. Field separator is |\n")
+ read_file.write("%13s -- Projection information in PROJ.4 format\n" % (metadata_file_name))
+ read_file.write("%13s -- This file\n" % (read_file_name))
+ read_file.close()
+
+ # Append the file list
+ tar.add(list_file_name)
+ tar.add(proj_file_name)
+ tar.add(init_file_name)
+ tar.add(read_file_name)
+ tar.add(metadata_file_name)
+ tar.close()
+
+ os.chdir(old_cwd)
+
+ # Move the archive to its destination
+ if output.find("/") >= 0 or output.find("\\") >= 0:
+ shutil.move(tmp_tar_file_name, output)
+ else:
+ shutil.move(os.path.join(new_cwd, tmp_tar_file_name), output)
+
+ # Remove the temporary created working directory
+ shutil.rmtree(new_cwd)
+
+if __name__ == "__main__":
+ options, flags = grass.parser()
+ main()
Copied: grass/trunk/temporal/t.rast.export/test.t.rast.export.sh (from rev 51264, grass/trunk/temporal/tr.export/test.tr.export.sh)
===================================================================
--- grass/trunk/temporal/t.rast.export/test.t.rast.export.sh (rev 0)
+++ grass/trunk/temporal/t.rast.export/test.t.rast.export.sh 2012-04-05 20:46:38 UTC (rev 51269)
@@ -0,0 +1,34 @@
+# Export of space time raster datasets
+
+# We need to set a specific region in the
+# @preprocess step of this test. We generate
+# raster with r.mapcalc and create a space time raster datasets
+# The region setting should work for UTM and LL test locations
+g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3
+
+r.mapcalc --o expr="prec_1 = rand(0, 550.0)"
+r.mapcalc --o expr="prec_2 = rand(0, 80000)"
+r.mapcalc --o expr="prec_3 = rand(-120, 120)"
+r.mapcalc --o expr="prec_4 = rand(0, 255)"
+r.mapcalc --o expr="prec_5 = rand(-1, 60000)"
+r.mapcalc --o expr="prec_6 = rand(0, 256)"
+
+n1=`g.tempfile pid=1 -d`
+
+cat > "${n1}" << EOF
+prec_1|2001-01-01|2001-07-01
+prec_2|2001-02-01|2001-04-01
+prec_3|2001-03-01|2001-04-01
+prec_4|2001-04-01|2001-06-01
+prec_5|2001-05-01|2001-06-01
+prec_6|2001-06-01|2001-07-01
+EOF
+
+t.create --o type=strds temporaltype=absolute output=precip_abs1 title="A test with input files" descr="A test with input files"
+
+# The first @test
+t.register -i type=rast input=precip_abs1 file="${n1}" start="2001-01-01" increment="1 months"
+t.rast.export input=precip_abs1 output=strds_export.tar.bz2 compression=bzip2 workdir=/tmp
+
+t.unregister type=rast maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6
+t.remove type=strds input=precip_abs1
Deleted: grass/trunk/temporal/t.rast.export/test.tr.export.sh
===================================================================
--- grass/trunk/temporal/tr.export/test.tr.export.sh 2012-04-04 21:20:55 UTC (rev 51264)
+++ grass/trunk/temporal/t.rast.export/test.tr.export.sh 2012-04-05 20:46:38 UTC (rev 51269)
@@ -1,34 +0,0 @@
-# Export of space time raster datasets
-
-# We need to set a specific region in the
-# @preprocess step of this test. We generate
-# raster with r.mapcalc and create a space time raster datasets
-# The region setting should work for UTM and LL test locations
-g.region s=0 n=80 w=0 e=120 b=0 t=50 res=10 res3=10 -p3
-
-r.mapcalc --o expr="prec_1 = rand(0, 550.0)"
-r.mapcalc --o expr="prec_2 = rand(0, 80000)"
-r.mapcalc --o expr="prec_3 = rand(-120, 120)"
-r.mapcalc --o expr="prec_4 = rand(0, 255)"
-r.mapcalc --o expr="prec_5 = rand(-1, 60000)"
-r.mapcalc --o expr="prec_6 = rand(0, 256)"
-
-n1=`g.tempfile pid=1 -d`
-
-cat > "${n1}" << EOF
-prec_1|2001-01-01|2001-07-01
-prec_2|2001-02-01|2001-04-01
-prec_3|2001-03-01|2001-04-01
-prec_4|2001-04-01|2001-06-01
-prec_5|2001-05-01|2001-06-01
-prec_6|2001-06-01|2001-07-01
-EOF
-
-t.create --o type=strds temporaltype=absolute output=precip_abs1 title="A test with input files" descr="A test with input files"
-
-# The first @test
-t.register -i type=rast input=precip_abs1 file="${n1}" start="2001-01-01" increment="1 months"
-tr.export input=precip_abs1 output=strds_export.tar.bz2 compression=bzip2 workdir=/tmp
-
-t.unregister type=rast maps=prec_1,prec_2,prec_3,prec_4,prec_5,prec_6
-t.remove type=strds input=precip_abs1
Deleted: grass/trunk/temporal/t.rast.export/tr.export.html
===================================================================
Deleted: grass/trunk/temporal/t.rast.export/tr.export.py
===================================================================
--- grass/trunk/temporal/tr.export/tr.export.py 2012-04-04 21:20:55 UTC (rev 51264)
+++ grass/trunk/temporal/t.rast.export/tr.export.py 2012-04-05 20:46:38 UTC (rev 51269)
@@ -1,228 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-############################################################################
-#
-# MODULE: tr.export
-# AUTHOR(S): Soeren Gebbert
-#
-# PURPOSE: Export a space time raster dataset
-# COPYRIGHT: (C) 2011 by the GRASS Development Team
-#
-# This program is free software under the GNU General Public
-# License (version 2). Read the file COPYING that comes with GRASS
-# for details.
-#
-#############################################################################
-
-#%module
-#% description: Export space time raster dataset
-#% keywords: temporal
-#% keywords: export
-#%end
-
-#%option G_OPT_STRDS_INPUT
-#%end
-
-#%option G_OPT_F_OUTPUT
-#% description: Name of a space time raster dataset archive
-#%end
-
-#%option
-#% key: workdir
-#% type: string
-#% description: Path to the work directory, default is /tmp
-#% required: no
-#% multiple: no
-#% answer: /tmp
-#%end
-
-
-#%option
-#% key: compression
-#% type: string
-#% description: Chose the compression of the tar archive
-#% required: no
-#% multiple: no
-#% options: no,gzip,bzip2
-#% answer: bzip2
-#%end
-
-#%option G_OPT_T_WHERE
-#%end
-
-import shutil
-import os
-import tarfile
-import tempfile
-import grass.script as grass
-import grass.temporal as tgis
-
-proj_file_name = "proj.txt"
-init_file_name = "init.txt"
-metadata_file_name = "metadata.txt"
-read_file_name = "readme.txt"
-list_file_name = "list.txt"
-tmp_tar_file_name = "archive"
-
-############################################################################
-
-def main():
-
- # Get the options
- input = options["input"]
- output = options["output"]
- compression = options["compression"]
- workdir = options["workdir"]
- where = options["where"]
-
- # Make sure the temporal database exists
- tgis.create_temporal_database()
-
- mapset = grass.gisenv()["MAPSET"]
-
- if input.find("@") >= 0:
- id = input
- else:
- id = input + "@" + mapset
-
- sp = tgis.space_time_raster_dataset(id)
-
- if sp.is_in_db() == False:
- grass.fatal(_("Space time %s dataset <%s> not found") % (sp.get_new_map_instance(None).get_type(), id))
-
- # Save current working directory path
- old_cwd = os.getcwd()
-
- # Create the temporary directory and jump into it
- new_cwd = tempfile.mkdtemp(dir=workdir)
- os.chdir(new_cwd)
-
- sp.select()
-
- columns = "name,start_time,end_time,min,max,datatype"
- rows = sp.get_registered_maps(columns, where, "start_time", None)
-
- if compression == "gzip":
- flag = "w:gz"
- elif compression == "bzip2":
- flag = "w:bz2"
- else:
- flag = "w"
-
- # Open the tar archive to add the files
- tar = tarfile.open(tmp_tar_file_name, flag)
- list_file = open(list_file_name, "w")
-
- fs = "|"
-
- if rows:
- for row in rows:
- name = row["name"]
- start = row["start_time"]
- end = row["end_time"]
- max_val = row["max"]
- min_val = row["min"]
- datatype = row["datatype"]
- if not end:
- end = start
- string = "%s%s%s%s%s\n" % (name, fs, start, fs, end)
- # Write the filename, the start_time and the end_time
- list_file.write(string)
-
- # Export the raster map with r.out.gdal as tif
- out_name = name + ".tif"
- if datatype == "CELL":
- nodata = max_val + 1
- if nodata < 256 and min_val >= 0:
- gdal_type = "Byte"
- elif nodata < 65536 and min_val >= 0:
- gdal_type = "UInt16"
- elif min_val >= 0:
- gdal_type = "UInt32"
- else:
- gdal_type = "Int32"
- ret = grass.run_command("r.out.gdal", flags="c", input=name, output=out_name, nodata=nodata, type=gdal_type, format="GTiff")
- else:
- ret = grass.run_command("r.out.gdal", flags="c", input=name, output=out_name, format="GTiff")
- if ret != 0:
- shutil.rmtree(new_cwd)
- tar.close()
- grass.fatal(_("Unable to export raster map <%s>" % name))
-
- tar.add(out_name)
-
- # Export the color rules
- out_name = name + ".color"
- ret = grass.run_command("r.colors.out", map=name, rules=out_name)
- if ret != 0:
- shutil.rmtree(new_cwd)
- tar.close()
- grass.fatal(_("Unable to export color rules for raster map <%s>" % name))
-
- tar.add(out_name)
-
- list_file.close()
-
- # Write projection and metadata
- proj = grass.read_command("g.proj", flags="j")
-
- proj_file = open(proj_file_name, "w")
- proj_file.write(proj)
- proj_file.close()
-
- init_file = open(init_file_name, "w")
- # Create the init string
- string = ""
- string += "%s=%s\n" % ("temporal_type", sp.get_temporal_type())
- string += "%s=%s\n" % ("semantic_type", sp.get_semantic_type())
- string += "%s=%s\n" % ("number_of_maps", sp.metadata.get_number_of_maps())
- north, south, east, west, top, bottom = sp.get_spatial_extent()
- string += "%s=%s\n" % ("north", north)
- string += "%s=%s\n" % ("south", south)
- string += "%s=%s\n" % ("east", east)
- string += "%s=%s\n" % ("west", west)
- init_file.write(string)
- init_file.close()
-
- metadata = grass.read_command("t.info", input=id)
- metadata_file = open(metadata_file_name, "w")
- metadata_file.write(metadata)
- metadata_file.close()
-
- read_file = open(read_file_name, "w")
- read_file.write("This space time raster dataset was exported with tr.export of GRASS GIS 7\n")
- read_file.write("\n")
- read_file.write("Files:\n")
- #123456789012345678901234567890
- read_file.write(" *.tif -- GeoTIFF time series raster files\n")
- read_file.write(" *.color -- GRASS GIS raster color rules\n")
- read_file.write("%13s -- Projection information in PROJ.4 format\n" % (proj_file_name))
- read_file.write("%13s -- GRASS GIS space time raster dataset information\n" % (init_file_name))
- read_file.write("%13s -- Time series file, lists all maps by name with interval\n" % (list_file_name))
- read_file.write(" time stamps in ISO-Format. Field separator is |\n")
- read_file.write("%13s -- Projection information in PROJ.4 format\n" % (metadata_file_name))
- read_file.write("%13s -- This file\n" % (read_file_name))
- read_file.close()
-
- # Append the file list
- tar.add(list_file_name)
- tar.add(proj_file_name)
- tar.add(init_file_name)
- tar.add(read_file_name)
- tar.add(metadata_file_name)
- tar.close()
-
- os.chdir(old_cwd)
-
- # Move the archive to its destination
- if output.find("/") >= 0 or output.find("\\") >= 0:
- shutil.move(tmp_tar_file_name, output)
- else:
- shutil.move(os.path.join(new_cwd, tmp_tar_file_name), output)
-
- # Remove the temporary created working directory
- shutil.rmtree(new_cwd)
-
-if __name__ == "__main__":
- options, flags = grass.parser()
- main()
More information about the grass-commit
mailing list