[GRASS-SVN] r55903 - in grass/trunk: . lib/python/temporal temporal/t.unregister

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Apr 18 15:06:41 PDT 2013


Author: huhabla
Date: 2013-04-18 15:06:40 -0700 (Thu, 18 Apr 2013)
New Revision: 55903

Modified:
   grass/trunk/grasslib.dox
   grass/trunk/lib/python/temporal/__init__.py
   grass/trunk/lib/python/temporal/abstract_dataset.py
   grass/trunk/lib/python/temporal/abstract_map_dataset.py
   grass/trunk/lib/python/temporal/abstract_space_time_dataset.py
   grass/trunk/lib/python/temporal/abstract_temporal_dataset.py
   grass/trunk/lib/python/temporal/aggregation.py
   grass/trunk/lib/python/temporal/base.py
   grass/trunk/lib/python/temporal/core.py
   grass/trunk/lib/python/temporal/datetime_math.py
   grass/trunk/lib/python/temporal/mapcalc.py
   grass/trunk/lib/python/temporal/pythontemporallib.dox
   grass/trunk/lib/python/temporal/space_time_datasets.py
   grass/trunk/lib/python/temporal/space_time_datasets_tools.py
   grass/trunk/lib/python/temporal/spatial_extent.py
   grass/trunk/lib/python/temporal/stds_export.py
   grass/trunk/lib/python/temporal/stds_import.py
   grass/trunk/lib/python/temporal/temporal_extent.py
   grass/trunk/lib/python/temporal/temporal_granularity.py
   grass/trunk/lib/python/temporal/temporal_relationships.py
   grass/trunk/lib/python/temporal/univar_statistics.py
   grass/trunk/temporal/t.unregister/t.unregister.py
Log:
Better doxygen support.
Added time stamps to command history.


Modified: grass/trunk/grasslib.dox
===================================================================
--- grass/trunk/grasslib.dox	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/grasslib.dox	2013-04-18 22:06:40 UTC (rev 55903)
@@ -51,7 +51,13 @@
  - gis: \ref gislib
  - raster: \ref rasterlib
  - vector: \ref vectorlib
+ - Temporal GIS API: \ref pythontemporallib
 
+\section interfaces Interfaces
+
+ - Python script interface: \ref pythonlib
+ - %PyGRASS: A Python based object oriented raster, vector library interface
+
 \section libs Further libraries
 
 (the name refers to the directory name in <tt>lib/</tt> in the source code)
@@ -120,10 +126,6 @@
  - manage:      \ref managelib
  - symbol:	Drawing symbols for %point %vector data library - \ref symbol
 
-\section interfaces Interfaces
-
- - \ref pythonlib
-
 \section gui GUI
 
  - \ref wxpythonlib

Modified: grass/trunk/lib/python/temporal/__init__.py
===================================================================
--- grass/trunk/lib/python/temporal/__init__.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/__init__.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -12,7 +12,6 @@
 from datetime_math import *
 from temporal_granularity import *
 from temporal_relationships import *
-from unit_tests import *
 from aggregation import *
 from extract import *
 from stds_export import *

Modified: grass/trunk/lib/python/temporal/abstract_dataset.py
===================================================================
--- grass/trunk/lib/python/temporal/abstract_dataset.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/abstract_dataset.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -57,28 +57,42 @@
     def reset(self, ident):
         """!Reset the internal structure and set the identifier
 
-           @param ident: The identifier of the dataset
+           @param ident The identifier of the dataset that  "name at mapset" or in case of vector maps "name:layer at mapset"
         """
         raise ImplementationError("This method must be implemented in the subclasses")
 
     def get_type(self):
-        """!Return the type of this class"""
+        """!Return the type of this class as string
+           
+           The type can be "vect", "rast", "rast3d", "stvds", "strds" or "str3ds" 
+           
+           @return "vect", "rast", "rast3d", "stvds", "strds" or "str3ds"
+        """
         raise ImplementationError("This method must be implemented in the subclasses")
 
     def get_new_instance(self, ident):
         """!Return a new instance with the type of this class
 
-           @param ident: The identifier of the dataset
+           @param ident The identifier of the new dataset instance
+           @return A new instance with the type of this object
         """
         raise ImplementationError("This method must be implemented in the subclasses")
 
     def spatial_overlapping(self, dataset):
-        """!Return True if the spatial extents are overlapping"""
+        """!Return True if the spatial extents overlap
+        
+           @param dataset The abstract dataset to check spatial overlapping
+           @return True if self and the provided dataset spatial overlap
+        """
 
         raise ImplementationError("This method must be implemented in the subclasses")
 
     def spatial_relation(self, dataset):
-        """Return the spatial relationship between self and dataset"""
+        """!Return the spatial relationship between self and dataset
+        
+           @param dataset The abstract dataset to compute the spatial relation with self
+           @return The spatial relationship as string
+        """
 
         raise ImplementationError("This method must be implemented in the subclasses")
 
@@ -104,22 +118,29 @@
         self.metadata.set_id(ident)
 
     def get_id(self):
-        """!Return the unique identifier of the dataset"""
+        """!Return the unique identifier of the dataset
+           @return The id of the dataset "name(:layer)@mapset" as string
+        """
         return self.base.get_id()
 
     def get_name(self):
-        """!Return the name"""
+        """!Return the name
+           @return The name of the dataset as string
+        """
         return self.base.get_name()
 
     def get_mapset(self):
-        """!Return the mapset"""
+        """!Return the mapset
+           @return The mapset in which the dataset was created as string
+        """
         return self.base.get_mapset()
 
     def get_valid_time(self):
         """!Returns a tuple of the valid start and end time
         
-           Start and end time can be either of type datetime or of type double
-           depending on the temporal type
+           Start and end time can be either of type datetime or of type integer,
+           depending on the temporal type.
+           
            @return A tuple of (start_time, end_time)
         """
 
@@ -136,9 +157,16 @@
         return (start, end)
 
     def get_absolute_time(self):
-        """!Returns a tuple of the start, the end 
-           valid time and the timezone of the map
+        """!Returns the start time, the end 
+           time and the timezone of the map as tuple
            
+           @attention: The timezone is currently not used.
+           
+           The start time is of type datetime.
+           
+           The end time is of type datetime in case of interval time, 
+           or None on case of a time instance.
+           
            @return A tuple of (start_time, end_time, timezone)
         """
 
@@ -149,8 +177,16 @@
         return (start, end, tz)
 
     def get_relative_time(self):
-        """!Returns the valid relative time interval (start_time, end_time, unit) 
-           or None if not present"""
+        """!Returns the start time, the end 
+           time and the temporal unit of the dataset as tuple
+           
+           The start time is of type integer.
+           
+           The end time is of type integer in case of interval time, 
+           or None on case of a time instance.
+           
+           @return A tuple of (start_time, end_time, unit)
+        """
 
         start = self.relative_time.get_start_time()
         end = self.relative_time.get_end_time()
@@ -159,17 +195,17 @@
         return (start, end, unit)
 
     def get_relative_time_unit(self):
-        """!Returns the relative time unit or None if not present"""
+        """!Returns the relative time unit
+           @return The relative time unit as string, None if not present
+        """
+        return self.relative_time.get_unit()
 
-        unit = self.relative_time.get_unit()
-
-        return unit
-
     def check_relative_time_unit(self, unit):
-        """!Check if unit is of type  years, months, days, hours, 
-           minutes or seconds
+        """!Check if unit is of type  year(s), month(s), day(s), hour(s), 
+           minute(s) or second(s)
 
-           Return True if success or False otherwise
+           @param unit The unit string
+           @return True if success, False otherwise
         """
         # Check unit
         units = ["year", "years", "month", "months", "day", "days", "hour", 
@@ -179,17 +215,33 @@
         return True
 
     def get_temporal_type(self):
-        """!Return the temporal type of this dataset"""
+        """!Return the temporal type of this dataset
+        
+           The temporal type can be absolute or relative
+           
+           @return The temporal type of the dataset as string
+        """
         return self.base.get_ttype()
 
     def get_spatial_extent(self):
-        """!Return a tuple of spatial extent 
-           (north, south, east, west, top, bottom) """
+        """!Return the spatial extent as tuple
+        
+           Top and bottom are set to 0 in case of a two dimensional spatial extent.
+           
+           @return A the spatial extent as tuple (north, south, east, west, top, bottom) 
+        """
         return self.spatial_extent.get_spatial_extent()
 
     def select(self, dbif=None):
         """!Select temporal dataset entry from database and fill 
-           up the internal structure"""
+           the internal structure
+           
+           The content of every dataset is stored in the temporal database.
+           This method must be used to fill this object with the content 
+           from the temporal database.
+           
+           @param dbif The database interface to be used
+        """
 
         dbif, connected = init_dbif(dbif)
 
@@ -205,25 +257,25 @@
             dbif.close()
 
     def is_in_db(self, dbif=None):
-        """!Check if the temporal dataset entry is in the database
+        """!Check if the dataset is registered in the database
 
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
+           @return True if the dataset is registered in the database
         """
         return self.base.is_in_db(dbif)
 
     def delete(self):
-        """!Delete temporal dataset entry from database if it exists"""
+        """!Delete dataset from database if it exists"""
         raise ImplementationError("This method must be implemented in the subclasses")
 
     def insert(self, dbif=None, execute=True):
-        """!Insert temporal dataset entry into 
-           database from the internal structure
+        """!Insert dataset into database
 
-
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are returned 
                            and must be executed by the caller.
+            @return The SQL insert statement in case execute=False, or an empty string otherwise
         """
 
         dbif, connected = init_dbif(dbif)
@@ -250,14 +302,15 @@
         return statement
 
     def update(self, dbif=None, execute=True, ident=None):
-        """!Update temporal dataset entry of database from the internal structure
+        """!Update the dataset entry in the database from the internal structure
            excluding None variables
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are returned 
                            and must be executed by the caller.
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The SQL update statement in case execute=False, or an empty string otherwise
         """
 
         dbif, connected = init_dbif(dbif)
@@ -285,14 +338,15 @@
         return statement
 
     def update_all(self, dbif=None, execute=True, ident=None):
-        """!Update temporal dataset entry of database from the internal structure
+        """!Update the dataset entry in the database from the internal structure
            and include None variables.
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are returned 
                            and must be executed by the caller.
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The SQL update statement in case execute=False, or an empty string otherwise
         """
 
         dbif, connected = init_dbif(dbif)
@@ -330,7 +384,7 @@
     def is_time_absolute(self):
         """!Return True in case the temporal type is absolute
         
-        @return True if temporal type is absolute, False otherwise
+            @return True if temporal type is absolute, False otherwise
         """
         if "temporal_type" in self.base.D:
             return self.base.get_ttype() == "absolute"
@@ -340,7 +394,7 @@
     def is_time_relative(self):
         """!Return True in case the temporal type is relative
         
-        @return True if temporal type is relative, False otherwise
+            @return True if temporal type is relative, False otherwise
         """
         if "temporal_type" in self.base.D:
             return self.base.get_ttype() == "relative"
@@ -348,7 +402,10 @@
             return None
 
     def temporal_relation(self, map):
-        """!Return the temporal relation of this and the provided temporal map"""
+        """!Return the temporal relation of self and the provided dataset
+        
+            @return The temporal relation as string
+        """
         if self.is_time_absolute() and map.is_time_absolute():
             return self.absolute_time.temporal_relation(map.absolute_time)
         if self.is_time_relative() and map.is_time_relative():

Modified: grass/trunk/lib/python/temporal/abstract_map_dataset.py
===================================================================
--- grass/trunk/lib/python/temporal/abstract_map_dataset.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/abstract_map_dataset.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -21,24 +21,42 @@
 from datetime_math import *
 
 class AbstractMapDataset(AbstractTemporalDataset):
-    """!This is the base class for all maps (raster, vector, raster3d)
-       providing additional function to set the valid time and the spatial extent.
+    """!This is the base class for all maps (raster, vector, raster3d).
+    
+        The temporal extent, the spatial extent and the metadata of maps
+        are stored in the temporal database. Maps can be registered in the temporal
+        database, updated and deleted. 
+        
+        This class provides all functionalities that are needed to manage maps
+        in the temporal database. That are:
+        - insert() to register the map and therefore its spatio-temporal extent and metadata in the temporal database
+        - update() to update the map spatio-temporal extent and metadata in the temporal database
+        - unregister() to unregister the map from each space time dataset in which this map is registered
+        - delete() to remove the map from the temporal database
+        - Methods to set relative and absolute time stamps
+        - Abstract methods that must be implemented in the map specific subclasses
     """
     def __init__(self):
         AbstractTemporalDataset.__init__(self)
 
     def get_new_stds_instance(self, ident):
-        """!Return a new space time dataset instance in which maps
-           are stored with the type of this class
+        """!Return a new space time dataset instance that store maps with the type of this map object (rast, rast3d or vect)
 
-           @param ident: The identifier of the dataset
+           @param ident The identifier of the space time dataset
+           @return The new space time dataset instance
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
 
     def get_stds_register(self):
-        """!Return the space time dataset register table name in which stds
-           are listed in which this map is registered"""
+        """!Return the space time dataset register table name
+        
+            Maps can be registered in several different space time datasets.
+            This method returns the name of the register table in the 
+            temporal database.
+            
+            @return The name of the stds register table
+        """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
 
@@ -48,7 +66,7 @@
            This table stores all space time datasets in 
            which this map is registered.
 
-           @param ident: The name of the register table
+           @param ident The name of the register table
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
@@ -57,18 +75,21 @@
         """!Check if the raster or voxel resolution is 
            finer than the current resolution
            
-           * Return "finer" in case the raster/voxel resolution is finer 
+           - Return "finer" in case the raster/voxel resolution is finer 
              than the current region
-           * Return "coarser" in case the raster/voxel resolution is coarser 
+           - Return "coarser" in case the raster/voxel resolution is coarser 
              than the current region
 
-           Vector maps are alwyas finer than the current region
+           Vector maps have no resolution, since they store the coordinates directly.
+           
+           @return "finer" or "coarser"
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
 
     def has_grass_timestamp(self):
-        """!Check if a grass file bsased time stamp exists for this map.
+        """!Check if a grass file based time stamp exists for this map.
+            @return True is the grass file based time stamped exists for this map
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
@@ -112,7 +133,7 @@
         """!Convert the valid time into a grass datetime library 
            compatible timestamp string
 
-            This methods works for reltaive and absolute time
+            This methods works for relative and absolute time
 
             @return the grass timestamp string
         """
@@ -134,7 +155,7 @@
         return start
 
     def get_map_id(self):
-        """!Return the map id. The map id is the unique map identifier 
+        """!Return the map id. The map id is the unique identifier 
            in grass and must not be equal to the
            primary key identifier (id) of the map in the database. 
            Since vector maps may have layer information,
@@ -144,6 +165,7 @@
            in the file system but not to identify
            map information in the temporal database.
 
+           @return The map id name at mapset
         """
         return self.base.get_map_id()
 
@@ -152,8 +174,12 @@
 
             Existing layer and mapset definitions in the name 
             string will be reused
+           
+           @param name The name of the map
+           @param The mapset in which the map is located
+           @layer The layer of the vector map, use None in case no layer exists
 
-           @param return the id of the vector map as name(:layer)@mapset 
+           @return the id of the map as name(:layer)@mapset 
                   while layer is optional
         """
 
@@ -171,11 +197,13 @@
             return "%s@%s" % (name, mapset)
 
     def get_layer(self):
-        """!Return the layer of the map or None in case no layer is defined"""
+        """!Return the layer of the map
+            @return the layer of the map or None in case no layer is defined
+        """
         return self.base.get_layer()
 
     def print_info(self):
-        """!Print information about this class in human readable style"""
+        """!Print information about this object in human readable style"""
 
         if self.get_type() == "raster":
             #                1         2         3         4         5         6         7
@@ -216,7 +244,7 @@
         print " +----------------------------------------------------------------------------+"
 
     def print_shell_info(self):
-        """!Print information about this class in shell style"""
+        """!Print information about this object in shell style"""
         self.base.print_shell_info()
         if self.is_time_absolute():
             self.absolute_time.print_shell_info()
@@ -240,55 +268,63 @@
             self.print_topology_shell_info()
 
     def insert(self, dbif=None, execute=True):
-        """!Insert temporal dataset entry into database from the internal structure
+        """!Insert the map content into the database from the internal structure
 
-           This functions assures that the timetsamp is written to the 
-           grass file system based database
+           This functions assures that the timestamp is written to the 
+           grass file system based database in addition to the temporal database entry.
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
+            @return The SQL insert statement in case execute=False, or an empty string otherwise
         """
         self.write_timestamp_to_grass()
         return AbstractDataset.insert(self, dbif, execute)
 
     def update(self, dbif=None, execute=True):
-        """!Update temporal dataset entry of database from the internal structure
+        """!Update the map content in the database from the internal structure
            excluding None variables
 
-           This functions assures that the timetsamp is written to the 
-           grass file system based database
+           This functions assures that the timestamp is written to the 
+           grass file system based database in addition to the temporal database entry.
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
+            @return The SQL insert statement in case execute=False, or an empty string otherwise
         """
         self.write_timestamp_to_grass()
         return AbstractDataset.update(self, dbif, execute)
 
     def update_all(self, dbif=None, execute=True):
-        """!Update temporal dataset entry of database from the internal structure
-           and include None varuables.
+        """!Update the map content in the database from the internal structure
+           including None variables
 
-           This functions assures that the timetsamp is written to the 
-           grass file system based database
+           This functions assures that the timestamp is written to the 
+           grass file system based database in addition to the temporal database entry.
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL statements will be executed.
+           @param dbif The database interface to be used
+           @param execute If True the SQL statements will be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
+            @return The SQL insert statement in case execute=False, or an empty string otherwise
         """
         self.write_timestamp_to_grass()
         return AbstractDataset.update_all(self, dbif, execute)
 
     def set_absolute_time(self, start_time, end_time=None, timezone=None):
-        """!Set the absolute time interval with start time and end time
+        """!Set the absolute time with start time and end time
 
-           @param start_time: a datetime object specifying the start time of the map
-           @param end_time: a datetime object specifying the end time of the map
-           @param timezone: Thee timezone of the map
+            The end time is optional and must be set to None in case of time instance.
+        
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
+            
+           @param start_time a datetime object specifying the start time of the map
+           @param end_time a datetime object specifying the end time of the map, None in case or time instance
+           @param timezone Thee timezone of the map (not used)
         """
         if start_time and not isinstance(start_time, datetime):
             if self.get_layer() is not None:
@@ -339,12 +375,14 @@
                              timezone=None, dbif=None):
         """!Update the absolute time
 
-           This functions assures that the timetsamp is written to the 
-           grass file system based database
+            The end time is optional and must be set to None in case of time instance.
 
-           @param start_time: a datetime object specifying the start time of the map
-           @param end_time: a datetime object specifying the end time of the map
-           @param timezone: Thee timezone of the map
+           This functions assures that the timestamp is written to the 
+           grass file system based database in addition to the temporal database entry.
+           
+           @param start_time a datetime object specifying the start time of the map
+           @param end_time a datetime object specifying the end time of the map, None in case or time instance
+           @param timezone Thee timezone of the map (not used)
         """
         dbif, connected = init_dbif(dbif)
 
@@ -359,10 +397,15 @@
 
     def set_relative_time(self, start_time, end_time, unit):
         """!Set the relative time interval
+        
+            The end time is optional and must be set to None in case of time instance.
+            
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
 
-           @param start_time: A double value
-           @param end_time: A double value
-           @param unit: The unit of the relative time. Supported units: 
+           @param start_time An integer value
+           @param end_time An integer value, None in case or time instance
+           @param unit The unit of the relative time. Supported units: 
                         year(s), month(s), day(s), hour(s), minute(s), second(s)
 
            @return True for success and False otherwise
@@ -413,12 +456,14 @@
     def update_relative_time(self, start_time, end_time, unit, dbif=None):
         """!Update the relative time interval
 
-           This functions assures that the timetsamp is written to the 
-           grass file system based database
+            The end time is optional and must be set to None in case of time instance.
 
-           @param start_time: A double value
-           @param end_time: A double value
-           @param dbif: The database interface to be used
+           This functions assures that the timestamp is written to the 
+           grass file system based database in addition to the temporal database entry.
+
+           @param start_time An integer value
+           @param end_time An integer value, None in case or time instance
+           @param dbif The database interface to be used
         """
         dbif, connected = init_dbif(dbif)
 
@@ -434,12 +479,15 @@
     def set_spatial_extent(self, north, south, east, west, top=0, bottom=0):
         """!Set the spatial extent of the map
 
-           @param north: The northern edge
-           @param south: The southern edge
-           @param east: The eastern edge
-           @param west: The western edge
-           @param top: The top edge
-           @param bottom: The bottom edge
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
+            
+           @param north The northern edge
+           @param south The southern edge
+           @param east The eastern edge
+           @param west The western edge
+           @param top The top edge
+           @param bottom The bottom edge
         """
         self.spatial_extent.set_spatial_extent(
             north, south, east, west, top, bottom)
@@ -479,16 +527,16 @@
               is registered
             * Remove the space time dataset register table
 
-           @param dbif: The database interface to be used
-           @param update: Call for each unregister statement the update from 
+           @param dbif The database interface to be used
+           @param update Call for each unregister statement the update from 
                           registered maps of the space time dataset. 
                           This can slow down the un-registration process significantly.
-           @param execute: If True the SQL DELETE and DROP table statements will 
+           @param execute If True the SQL DELETE and DROP table statements will 
                            be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
 
-           @return The SQL statements if execute == False, else an empty string, 
+           @return The SQL statements if execute=False, else an empty string, 
                    None in case of a failure
         """
 
@@ -536,16 +584,16 @@
         """! Remove the map entry in each space time dataset in which this map 
            is registered
 
-           @param dbif: The database interface to be used
-           @param update: Call for each unregister statement the update from 
+           @param dbif The database interface to be used
+           @param update Call for each unregister statement the update from 
                           registered maps of the space time dataset. This can 
                           slow down the un-registration process significantly.
-           @param execute: If True the SQL DELETE and DROP table statements 
+           @param execute If True the SQL DELETE and DROP table statements 
                            will be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
 
-           @return The SQL statements if execute == False, else an empty string
+           @return The SQL statements if execute=False, else an empty string
         """
 
         # Commented because of performance issue calling g.message thousend times
@@ -594,7 +642,8 @@
            dictionary like rows with column "id" or None if this map is not 
            registered in any space time dataset.
 
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
+           @return The SQL rows with the ids of all space time datasets in which this map is registered
         """
         dbif, connected = init_dbif(dbif)
 

Modified: grass/trunk/lib/python/temporal/abstract_space_time_dataset.py
===================================================================
--- grass/trunk/lib/python/temporal/abstract_space_time_dataset.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/abstract_space_time_dataset.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -38,10 +38,10 @@
         self.map_counter = 0
 
     def get_new_map_instance(self, ident=None):
-        """!Return a new instance of a map dataset which is associated 
-           with the type of this class
+        """!Return a new instance of a map which is associated 
+           with the type of this object
 
-           @param ident: The unique identifier of the new object
+           @param ident The unique identifier of the new object
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
@@ -53,6 +53,8 @@
             
             ATTENTION: It must be assured that the base object has selected its 
             content from the database.
+            
+            @return The name of the map register table
         """
         
         return self.base.get_name() + "_" + \
@@ -60,7 +62,9 @@
                 self.get_new_map_instance(None).get_type() + "_register"
 
     def get_map_register(self):
-        """!Return the name of the map register table"""
+        """!Return the name of the map register table
+           @return The map register table name
+        """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
 
@@ -70,7 +74,10 @@
            This table stores all map names which are registered
            in this space time dataset.
 
-           @param name: The name of the register table
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
+            
+           @param name The name of the register table
         """
         raise ImplementationError(
             "This method must be implemented in the subclasses")
@@ -122,14 +129,22 @@
 
     def set_initial_values(self, temporal_type, semantic_type,
                            title=None, description=None):
-        """!Set the initial values of the space time dataset and
-            the command creation string
+        """!Set the initial values of the space time dataset
+        
+            In addition the command creation string is generated
+            an inerted into the metadata object.
+            
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
+            
+            The insert() function must be called to commit
+            this content into the temporal database.
 
-           @param temporal_type: The temporal type of this space 
+           @param temporal_type The temporal type of this space 
                                  time dataset (absolute or relative)
-           @param semantic_type: The semantic type of this dataset
-           @param title: The title
-           @param description: The description of this dataset
+           @param semantic_type The semantic type of this dataset
+           @param title The title
+           @param description The description of this dataset
         """
 
         if temporal_type == "absolute":
@@ -147,6 +162,7 @@
     def update_command_string(self, dbif=None):
         """!Append the current command string to any existing command string
            in the metadata class and calls metadata update
+           @param dbif The database interface to be used
         """
 
         self.metadata.select(dbif=dbif)
@@ -163,11 +179,13 @@
            
            The command string should be set with self.metadata.set_command()
            
-           @return The command history string
+           @return The command string
            """
         # The grass module
-        command = os.path.basename(sys.argv[0])
         
+        command = "- %s -\n"%(str(datetime.today().strftime("%Y-%m-%d %H:%M:%S")))
+        command += os.path.basename(sys.argv[0])
+        
         # We will wrap the command line to fit into 80 character
         length = len(command)
         for token in sys.argv[1:]:
@@ -197,7 +215,9 @@
         return command
 
     def get_semantic_type(self):
-        """!Return the semantic type of this dataset"""
+        """!Return the semantic type of this dataset
+           @return The semantic type
+        """
         return self.base.get_semantic_type()
 
     def get_initial_values(self):
@@ -218,6 +238,8 @@
            In case of absolute time a string containing an integer
            value and the time unit (years, months, days, hours, minuts, seconds).
            In case of relative time an integer value is expected.
+           
+           @return The granularity 
         """
 
         temporal_type = self.get_temporal_type()
@@ -232,10 +254,17 @@
     def set_granularity(self, granularity):
         """!Set the granularity
         
+           The granularity is usually computed by the space time dataset at runtime.
+        
            Granularity can be of absolute time or relative time.
            In case of absolute time a string containing an integer
            value and the time unit (years, months, days, hours, minuts, seconds).
            In case of relative time an integer value is expected.
+           
+           This method only modifies this object and does not commit
+           the modifications to the temporal database.
+            
+           @param granularity The granularity of the dataset
         """
 
         temporal_type = self.get_temporal_type()
@@ -260,6 +289,11 @@
 
            All maps registered in a (relative time) 
            space time dataset must have the same unit
+           
+            This method only modifies this object and does not commit
+            the modifications to the temporal database.
+            
+           @param unit The relative time unit
         """
 
         temporal_type = self.get_temporal_type()
@@ -292,8 +326,8 @@
            - interval -> start and end time
            - invalid  -> No valid time point or interval found
 
-           @param maps: A sorted (start_time) list of AbstractDataset objects
-           @param dbif: The database interface to be used
+           @param maps A sorted (start_time) list of AbstractDataset objects
+           @param dbif The database interface to be used
         """
 
         if maps is None:
@@ -328,8 +362,8 @@
     def count_gaps(self, maps=None, dbif=None):
         """!Count the number of gaps between temporal neighbors
 
-           @param maps: A sorted (start_time) list of AbstractDataset objects
-           @param dbif: The database interface to be used
+           @param maps A sorted (start_time) list of AbstractDataset objects
+           @param dbif The database interface to be used
            @return The numbers of gaps between temporal neighbors
         """
 
@@ -354,8 +388,8 @@
            The temporal relation matrix includes the temporal relations between
            all registered maps. The relations are strings stored in a list of lists.
 
-           @param maps: a ordered by start_time list of map objects
-           @param dbif: The database interface to be used
+           @param maps a ordered by start_time list of map objects
+           @param dbif The database interface to be used
         """
 
         if maps is None:
@@ -371,8 +405,8 @@
            Temporal relations are counted by analysing the sparse 
            upper right side temporal relationships matrix.
 
-           @param maps: A sorted (start_time) list of AbstractDataset objects
-           @param dbif: The database interface to be used
+           @param maps A sorted (start_time) list of AbstractDataset objects
+           @param dbif The database interface to be used
            @return A dictionary with counted temporal relationships
         """
 
@@ -410,8 +444,8 @@
            - finished   -> not allowed
            @endverbatim
 
-           @param maps: An optional list of AbstractDataset objects, in case of None all maps of the space time dataset are checked
-           @param dbif: The database interface to be used
+           @param maps An optional list of AbstractDataset objects, in case of None all maps of the space time dataset are checked
+           @param dbif The database interface to be used
            @return True if topology is correct
         """
         if maps is None:
@@ -493,8 +527,8 @@
            In case more map information are needed, use the select() 
            method for each listed object.
 
-           @param stds: The space time dataset to be used for temporal sampling
-           @param method: This option specifies what sample method should be used. 
+           @param stds The space time dataset to be used for temporal sampling
+           @param method This option specifies what sample method should be used. 
                   In case the registered maps are of temporal point type,
                   only the start time is used for sampling. In case of mixed 
                   of interval data the user can chose between:
@@ -560,13 +594,13 @@
                   All these methods can be combined. Method must be of 
                   type tuple including the identification strings.
                   
-           @param spatial: If set True additional the spatial overlapping 
+           @param spatial If set True additional the spatial overlapping 
                            is used for selection -> spatio-temporal relation.
                            The returned map objects will have temporal and 
                            spatial extents
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
 
-           In case nothing found None is returned
+           @return A list of lists of map objects or None in case nothing was found None
         """
 
         use_start = False
@@ -701,7 +735,7 @@
            In case more map information are needed, use the select() 
            method for each listed object.
 
-           @param gran: The granularity string to be used, if None the granularity of 
+           @param gran The granularity string to be used, if None the granularity of 
                         the space time dataset is used.
                         Absolute time has
                         the format "number unit", relative time has the format "number". 
@@ -709,9 +743,9 @@
                         minute, minutes, hour, hours, day, days, week, weeks, month, months,
                         year, years". The unit of the relative time granule is always the 
                         space time dataset unit and can not be changed.
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
 
-           @return ordered object list, in case nothing found None is returned
+           @return ordered object list, or None in case nothing found
         """
 
         
@@ -876,9 +910,9 @@
            In case more map information are needed, use the select() 
            method for each listed object.
 
-           @param where: The SQL where statement to select a 
+           @param where The SQL where statement to select a 
                          subset of the registered maps without "WHERE"
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
 
            @return ordered object list, in case nothing found None is returned
         """
@@ -924,15 +958,15 @@
            temporal topological relationship informations.
 
            The objects are initialized with their id's' and the temporal extent 
-           (temporal type, start time, end time) and the temmporal topological information.
+           (temporal type, start time, end time) and the temporal topological information.
            In case more map information are needed, use the select() 
            method for each listed object.
 
-           @param where: The SQL where statement to select a subset of 
+           @param where The SQL where statement to select a subset of 
                          the registered maps without "WHERE"
-           @param order: The SQL order statement to be used to order the 
+           @param order The SQL order statement to be used to order the 
                          objects in the list without "ORDER BY"
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
            @return The ordered map object list, 
                    In case nothing found None is returned
         """
@@ -958,11 +992,11 @@
            In case more map information are needed, use the select() 
            method for each listed object.
 
-           @param where: The SQL where statement to select a subset of 
+           @param where The SQL where statement to select a subset of 
                          the registered maps without "WHERE"
-           @param order: The SQL order statement to be used to order the 
+           @param order The SQL order statement to be used to order the 
                          objects in the list without "ORDER BY"
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
            @return The ordered map object list, 
                    In case nothing found None is returned
         """
@@ -995,12 +1029,12 @@
            In case columns are not specified, each row includes all columns 
            specified in the datatype specific view.
 
-           @param columns: Columns to be selected as SQL compliant string
-           @param where: The SQL where statement to select a subset 
+           @param columns Columns to be selected as SQL compliant string
+           @param where The SQL where statement to select a subset 
                          of the registered maps without "WHERE"
-           @param order: The SQL order statement to be used to order the 
+           @param order The SQL order statement to be used to order the 
                          objects in the list without "ORDER BY"
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
 
            @return SQL rows of all registered maps, 
                    In case nothing found None is returned
@@ -1052,8 +1086,8 @@
            This method renames the space time dataset, the map register table
            and updates the entries in registered maps stds register.
 
-           @param ident: The new identifier name at mapset
-           @param dbif: The database interface to be used
+           @param ident The new identifier name at mapset
+           @param dbif The database interface to be used
         """
 
         dbif, connected = init_dbif(dbif)
@@ -1103,8 +1137,8 @@
            This method removes the space time dataset from the temporal 
            database and drops its map register table
 
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL DELETE and DROP table 
+           @param dbif The database interface to be used
+           @param execute If True the SQL DELETE and DROP table 
                            statements will be executed.
                            If False the prepared SQL statements are returned 
                            and must be executed by the caller.
@@ -1168,8 +1202,9 @@
             
             This method raises a ScriptError in case of a fatal error
 
-           @param map: The AbstractMapDataset object that should be registered
-           @param dbif: The database interface to be used
+           @param map The AbstractMapDataset object that should be registered
+           @param dbif The database interface to be used
+           @return True if success, False otherwise
         """
         dbif, connected = init_dbif(dbif)
 
@@ -1408,9 +1443,9 @@
            This method takes care of the un-registration of a map
            from a space time dataset.
 
-           @param map: The map object to unregister
-           @param dbif: The database interface to be used
-           @param execute: If True the SQL DELETE and DROP table 
+           @param map The map object to unregister
+           @param dbif The database interface to be used
+           @param execute If True the SQL DELETE and DROP table 
                            statements will be executed.
                            If False the prepared SQL statements are 
                            returned and must be executed by the caller.
@@ -1513,7 +1548,7 @@
            in the SQL files. But this will result in a huge performance issue
            in case many maps are registered (>1000).
 
-           @param dbif: The database interface to be used
+           @param dbif The database interface to be used
         """
         core.verbose(_("Update metadata, spatial and temporal extent from "
                        "all registered maps of <%s>") % (self.get_id()))

Modified: grass/trunk/lib/python/temporal/abstract_temporal_dataset.py
===================================================================
--- grass/trunk/lib/python/temporal/abstract_temporal_dataset.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/abstract_temporal_dataset.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -31,17 +31,17 @@
        let the user walk temporally forward and backward in time.
 
        The following temporal relations with access methods are supported:
-       * equal
-       * follows
-       * precedes
-       * overlaps
-       * overlapped
-       * during (including starts, finishes)
-       * contains (including started, finished)
-       * starts
-       * started
-       * finishes
-       * finished
+       - equal
+       - follows
+       - precedes
+       - overlaps
+       - overlapped
+       - during (including starts, finishes)
+       - contains (including started, finished)
+       - starts
+       - started
+       - finishes
+       - finished
 
 
        @code:
@@ -125,17 +125,17 @@
         are the number of relations.
         
         The following relations are available:
-        * equal
-        * follows
-        * precedes
-        * overlaps
-        * overlapped
-        * during (including starts, finishes)
-        * contains (including started, finished)
-        * starts
-        * started
-        * finishes
-        * finished
+        - equal
+        - follows
+        - precedes
+        - overlaps
+        - overlapped
+        - during (including starts, finishes)
+        - contains (including started, finished)
+        - starts
+        - started
+        - finishes
+        - finished
         
         To access topological information the temporal topology must be build first
         using the TemporalTopologyBuilder.
@@ -205,29 +205,29 @@
         """!Check if the temporal topology was build"""
         return self._has_topology
 
-    def set_next(self, map_):
+    def set_next(self, map):
         """!Set the map that is temporally as closest located after this map.
 
            Temporally located means that the start time of the "next" map is
            temporally located AFTER the start time of this map, but temporally
            near than other maps of the same dataset.
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
-        self._topology["NEXT"] = map_
+        self._topology["NEXT"] = map
 
-    def set_prev(self, map_):
+    def set_prev(self, map):
         """!Set the map that is temporally as closest located before this map.
 
            Temporally located means that the start time of the "previous" map is
            temporally located BEFORE the start time of this map, but temporally
            near than other maps of the same dataset.
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
-        self._topology["PREV"] = map_
+        self._topology["PREV"] = map
 
     def next(self):
         """!Return the map with a start time temporally located after
@@ -249,15 +249,15 @@
             return None
         return self._topology["PREV"]
 
-    def append_equal(self, map_):
+    def append_equal(self, map):
         """!Append a map with equivalent temporal extent as this map
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "EQUAL" not in self._topology:
             self._topology["EQUAL"] = []
-        self._topology["EQUAL"].append(map_)
+        self._topology["EQUAL"].append(map)
 
     def get_equal(self):
         """!Return a list of map objects with equivalent temporal extent as this map
@@ -268,15 +268,15 @@
             return None
         return self._topology["EQUAL"]
 
-    def append_starts(self, map_):
+    def append_starts(self, map):
         """!Append a map that this map temporally starts with
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "STARTS" not in self._topology:
             self._topology["STARTS"] = []
-        self._topology["STARTS"].append(map_)
+        self._topology["STARTS"].append(map)
 
     def get_starts(self):
         """!Return a list of map objects that this map temporally starts with
@@ -287,15 +287,15 @@
             return None
         return self._topology["STARTS"]
 
-    def append_started(self, map_):
+    def append_started(self, map):
         """!Append a map that this map temporally started with
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "STARTED" not in self._topology:
             self._topology["STARTED"] = []
-        self._topology["STARTED"].append(map_)
+        self._topology["STARTED"].append(map)
 
     def get_started(self):
         """!Return a list of map objects that this map temporally started with
@@ -306,15 +306,15 @@
             return None
         return self._topology["STARTED"]
 
-    def append_finishes(self, map_):
+    def append_finishes(self, map):
         """!Append a map that this map temporally finishes with
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "FINISHES" not in self._topology:
             self._topology["FINISHES"] = []
-        self._topology["FINISHES"].append(map_)
+        self._topology["FINISHES"].append(map)
 
     def get_finishes(self):
         """!Return a list of map objects that this map temporally finishes with
@@ -325,15 +325,15 @@
             return None
         return self._topology["FINISHES"]
 
-    def append_finished(self, map_):
+    def append_finished(self, map):
         """!Append a map that this map temporally finished with
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "FINISHED" not in self._topology:
             self._topology["FINISHED"] = []
-        self._topology["FINISHED"].append(map_)
+        self._topology["FINISHED"].append(map)
 
     def get_finished(self):
         """!Return a list of map objects that this map temporally finished with
@@ -344,15 +344,15 @@
             return None
         return self._topology["FINISHED"]
 
-    def append_overlaps(self, map_):
+    def append_overlaps(self, map):
         """!Append a map that this map temporally overlaps
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "OVERLAPS" not in self._topology:
             self._topology["OVERLAPS"] = []
-        self._topology["OVERLAPS"].append(map_)
+        self._topology["OVERLAPS"].append(map)
 
     def get_overlaps(self):
         """!Return a list of map objects that this map temporally overlaps
@@ -363,15 +363,15 @@
             return None
         return self._topology["OVERLAPS"]
 
-    def append_overlapped(self, map_):
+    def append_overlapped(self, map):
         """!Append a map that this map temporally overlapped
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "OVERLAPPED" not in self._topology:
             self._topology["OVERLAPPED"] = []
-        self._topology["OVERLAPPED"].append(map_)
+        self._topology["OVERLAPPED"].append(map)
 
     def get_overlapped(self):
         """!Return a list of map objects that this map temporally overlapped
@@ -382,15 +382,15 @@
             return None
         return self._topology["OVERLAPPED"]
 
-    def append_follows(self, map_):
+    def append_follows(self, map):
         """!Append a map that this map temporally follows
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "FOLLOWS" not in self._topology:
             self._topology["FOLLOWS"] = []
-        self._topology["FOLLOWS"].append(map_)
+        self._topology["FOLLOWS"].append(map)
 
     def get_follows(self):
         """!Return a list of map objects that this map temporally follows
@@ -401,15 +401,15 @@
             return None
         return self._topology["FOLLOWS"]
 
-    def append_precedes(self, map_):
+    def append_precedes(self, map):
         """!Append a map that this map temporally precedes
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "PRECEDES" not in self._topology:
             self._topology["PRECEDES"] = []
-        self._topology["PRECEDES"].append(map_)
+        self._topology["PRECEDES"].append(map)
 
     def get_precedes(self):
         """!Return a list of map objects that this map temporally precedes
@@ -420,16 +420,16 @@
             return None
         return self._topology["PRECEDES"]
 
-    def append_during(self, map_):
+    def append_during(self, map):
         """!Append a map that this map is temporally located during
            This includes temporal relationships starts and finishes
 
-           @param map_: This object should be of type 
+           @param map This object should be of type 
                         AbstractMapDataset or derived classes
         """
         if "DURING" not in self._topology:
             self._topology["DURING"] = []
-        self._topology["DURING"].append(map_)
+        self._topology["DURING"].append(map)
 
     def get_during(self):
         """!Return a list of map objects that this map is temporally located during
@@ -441,16 +441,16 @@
             return None
         return self._topology["DURING"]
 
-    def append_contains(self, map_):
+    def append_contains(self, map):
         """!Append a map that this map temporally contains
            This includes temporal relationships started and finished
 
-           @param map_: This object should be of type AbstractMapDataset 
+           @param map This object should be of type AbstractMapDataset 
                         or derived classes
         """
         if "CONTAINS" not in self._topology:
             self._topology["CONTAINS"] = []
-        self._topology["CONTAINS"].append(map_)
+        self._topology["CONTAINS"].append(map)
 
     def get_contains(self):
         """!Return a list of map objects that this map temporally contains
@@ -503,111 +503,84 @@
 
     def print_topology_info(self):
         """!Print information about this class in human readable style"""
-        _next = self.next()
-        _prev = self.prev()
-        _equal = self.get_equal()
-        _follows = self.get_follows()
-        _precedes = self.get_precedes()
-        _overlaps = self.get_overlaps()
-        _overlapped = self.get_overlapped()
-        _during = self.get_during()
-        _contains = self.get_contains()
-        _starts = self.get_starts()
-        _started = self.get_started()
-        _finishes = self.get_finishes()
-        _finished = self.get_finished()
         
         print " +-------------------- Temporal Topology -------------------------------------+"
         #          0123456789012345678901234567890
-        if _next is not None:
-            print " | Next: ...................... " + str(_next.get_id())
-        if _prev is not None:
-            print " | Previous: .................. " + str(_prev.get_id())
-        if _equal is not None:
+        if self.next() is not None:
+            print " | Next: ...................... " + str(self.next().get_id())
+        if self.prev() is not None:
+            print " | Previous: .................. " + str(self.prev().get_id())
+        if self.equal is not None:
             print " | Equal:...................... " + \
-                self._generate_map_list_string(_equal)
-        if _follows is not None:
+                self._generate_map_list_string(self.equal)
+        if self.follows is not None:
             print " | Follows: ................... " + \
-                self._generate_map_list_string(_follows)
-        if _precedes is not None:
+                self._generate_map_list_string(self.follows)
+        if self.precedes is not None:
             print " | Precedes: .................. " + \
-                self._generate_map_list_string(_precedes)
-        if _overlaps is not None:
+                self._generate_map_list_string(self.precedes)
+        if self.overlaps is not None:
             print " | Overlaps: .................. " + \
-                self._generate_map_list_string(_overlaps)
-        if _overlapped is not None:
+                self._generate_map_list_string(self.overlaps)
+        if self.overlapped is not None:
             print " | Overlapped: ................ " + \
-                self._generate_map_list_string(_overlapped)
-        if _during is not None:
+                self._generate_map_list_string(self.overlapped)
+        if self.during is not None:
             print " | During: .................... " + \
-                self._generate_map_list_string(_during)
-        if _contains is not None:
+                self._generate_map_list_string(self.during)
+        if self.contains is not None:
             print " | Contains: .................. " + \
-                self._generate_map_list_string(_contains)
-        if _starts is not None:
+                self._generate_map_list_string(self.contains)
+        if self.starts is not None:
             print " | Starts:.. .................. " + \
-                self._generate_map_list_string(_starts)
-        if _started is not None:
+                self._generate_map_list_string(self.starts)
+        if self.started is not None:
             print " | Started:. .................. " + \
-                self._generate_map_list_string(_started)
-        if _finishes is not None:
+                self._generate_map_list_string(self.started)
+        if self.finishes is not None:
             print " | Finishes:................... " + \
-                self._generate_map_list_string(_finishes)
-        if _finished is not None:
+                self._generate_map_list_string(self.finishes)
+        if self.finished is not None:
             print " | Finished:................... " + \
-                self._generate_map_list_string(_finished)
+                self._generate_map_list_string(self.finished)
 
     def print_topology_shell_info(self):
         """!Print information about this class in shell style"""
-
-        _next = self.next()
-        _prev = self.prev()
-        _equal = self.get_equal()
-        _follows = self.get_follows()
-        _precedes = self.get_precedes()
-        _overlaps = self.get_overlaps()
-        _overlapped = self.get_overlapped()
-        _during = self.get_during()
-        _contains = self.get_contains()
-        _starts = self.get_starts()
-        _started = self.get_started()
-        _finishes = self.get_finishes()
-        _finished = self.get_finished()
         
-        if _next is not None:
-            print "next=" + _next.get_id()
-        if _prev is not None:
-            print "prev=" + _prev.get_id()
-        if _equal is not None:
-            print "equal=" + self._generate_map_list_string(_equal, False)
-        if _follows is not None:
-            print "follows=" + self._generate_map_list_string(_follows, False)
-        if _precedes is not None:
+        if self.next() is not None:
+            print "next=" + self.next().get_id()
+        if self.prev() is not None:
+            print "prev=" + self.prev().get_id()
+        if self.equal is not None:
+            print "equal=" + self._generate_map_list_string(self.equal, False)
+        if self.follows is not None:
+            print "follows=" + self._generate_map_list_string(self.follows, False)
+        if self.precedes is not None:
             print "precedes=" + self._generate_map_list_string(
-                _precedes, False)
-        if _overlaps is not None:
+                self.precedes, False)
+        if self.overlaps is not None:
             print "overlaps=" + self._generate_map_list_string(
-                _overlaps, False)
-        if _overlapped is not None:
+                self.overlaps, False)
+        if self.overlapped is not None:
             print "overlapped=" + \
-                self._generate_map_list_string(_overlapped, False)
-        if _during is not None:
-            print "during=" + self._generate_map_list_string(_during, False)
-        if _contains is not None:
+                self._generate_map_list_string(self.overlapped, False)
+        if self.during is not None:
+            print "during=" + self._generate_map_list_string(self.during, False)
+        if self.contains is not None:
             print "contains=" + self._generate_map_list_string(
-                _contains, False)
-        if _starts is not None:
+                self.contains, False)
+        if self.starts is not None:
             print "starts=" + \
-                self._generate_map_list_string(_starts)
-        if _started is not None:
+                self._generate_map_list_string(self.starts)
+        if self.started is not None:
             print "started=" + \
-                self._generate_map_list_string(_started)
-        if _finishes is not None:
+                self._generate_map_list_string(self.started)
+        if self.finishes is not None:
             print "finishes=" + \
-                self._generate_map_list_string(_finishes)
-        if _finished is not None:
+                self._generate_map_list_string(self.finishes)
+        if self.finished is not None:
             print "finished=" + \
-                self._generate_map_list_string(_finished)
+                self._generate_map_list_string(self.finished)
 
 ###############################################################################
 

Modified: grass/trunk/lib/python/temporal/aggregation.py
===================================================================
--- grass/trunk/lib/python/temporal/aggregation.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/aggregation.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -32,11 +32,11 @@
 def collect_map_names(sp, dbif, start, end, sampling):
     """!Gather all maps from dataset using a specific sample method
 
-       @param sp: The space time raster dataset to select aps from
-       @param dbif: The temporal database interface to use
-       @param start: The start time of the sample interval, may be relative or absolute
-       @param end: The end time of the sample interval, may be relative or absolute
-       @param sampling: The sampling methods to use
+       @param sp The space time raster dataset to select aps from
+       @param dbif The temporal database interface to use
+       @param start The start time of the sample interval, may be relative or absolute
+       @param end The end time of the sample interval, may be relative or absolute
+       @param sampling The sampling methods to use
     """
 
     use_start = False
@@ -104,14 +104,14 @@
                           register_null, dbif):
     """!Aggregate a list of raster input maps with r.series
 
-       @param inputs: The names of the raster maps to be aggregated
-       @param base: The basename of the new created raster maps
-       @param start: The start time of the sample interval, may be relative or absolute
-       @param end: The end time of the sample interval, may be relative or absolute
-       @param count: The number to be attached to the basename of the new created raster map
-       @param method: The aggreation method to be used by r.series
-       @param register_null: If true null maps will be registered in the space time raster dataset, if false not
-       @param dbif: The temporal database interface to use
+       @param inputs The names of the raster maps to be aggregated
+       @param base The basename of the new created raster maps
+       @param start The start time of the sample interval, may be relative or absolute
+       @param end The end time of the sample interval, may be relative or absolute
+       @param count The number to be attached to the basename of the new created raster map
+       @param method The aggreation method to be used by r.series
+       @param register_null If true null maps will be registered in the space time raster dataset, if false not
+       @param dbif The temporal database interface to use
     """
 
     core.verbose(_("Aggregate %s raster maps") % (len(inputs)))

Modified: grass/trunk/lib/python/temporal/base.py
===================================================================
--- grass/trunk/lib/python/temporal/base.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/base.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -180,7 +180,7 @@
         """!Convert the content of the dbmi dictionary like row into the 
            internal dictionary
 
-           @param row: The dictionary like row to store in the internal dict
+           @param row The dictionary like row to store in the internal dict
         """
         self.D = {}
         for key in row.keys():
@@ -204,10 +204,10 @@
        structure of this class in the temporal database are implemented.
        This is the base class for raster, raster3d, vector and 
        space time datasets data management classes:
-       * Identification information (base)
-       * Spatial extent
-       * Temporal extent
-       * Metadata
+       - Identification information (base)
+       - Spatial extent
+       - Temporal extent
+       - Metadata
        
        Usage:
        
@@ -245,8 +245,8 @@
     def __init__(self, table=None, ident=None):
         """!Constructor of this class
 
-           @param table: The name of the table
-           @param ident: The identifier (primary key) of this 
+           @param table The name of the table
+           @param ident The identifier (primary key) of this 
                          object in the database table
         """
         DictSQLSerializer.__init__(self)
@@ -256,18 +256,22 @@
 
     def get_table_name(self):
         """!Return the name of the table in which the internal 
-           data are inserted, updated or selected"""
+           data are inserted, updated or selected
+           @return The name of the table
+           """
         return self.table
 
     def get_delete_statement(self):
-        """!Return the delete string"""
+        """!Return the delete string
+           @return The DELETE string
+        """
         return "DELETE FROM " + self.get_table_name() + \
                " WHERE id = \'" + str(self.ident) + "\';\n"
 
     def delete(self, dbif=None):
         """!Delete the entry of this object from the temporal database
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
         """
         sql = self.get_delete_statement()
@@ -282,15 +286,19 @@
             dbif.close()
 
     def get_is_in_db_statement(self):
-        """!Return the selection string"""
+        """!Return the selection string that checks if this object is registered in the
+           temporal database
+           @return The SELECT string
+        """
         return "SELECT id FROM " + self.get_table_name() + \
                " WHERE id = \'" + str(self.ident) + "\';\n"
 
     def is_in_db(self, dbif=None):
         """!Check if this object is present in the temporal database
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
+           @return True if this object is present in the temporal database, False otherwise
         """
 
         sql = self.get_is_in_db_statement()
@@ -314,15 +322,18 @@
 
     def get_select_statement(self):
         """!Return the sql statement and the argument list in 
-           database specific style"""
+           database specific style
+           @return The SELECT string
+        """
         return self.serialize("SELECT", self.get_table_name(), 
                               "WHERE id = \'" + str(self.ident) + "\'")
 
     def get_select_statement_mogrified(self, dbif=None):
         """!Return the select statement as mogrified string
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
+           @return The SELECT string
         """
         if not dbif:
             dbif = SQLDatabaseInterfaceConnection()
@@ -333,7 +344,7 @@
         """!Select the content from the temporal database and store it
            in the internal dictionary structure
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
         """
         sql, args = self.get_select_statement()
@@ -370,14 +381,16 @@
 
     def get_insert_statement(self):
         """!Return the sql statement and the argument 
-           list in database specific style"""
+           list in database specific style
+           @return The INSERT string"""
         return self.serialize("INSERT", self.get_table_name())
 
     def get_insert_statement_mogrified(self, dbif=None):
         """!Return the insert statement as mogrified string
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
+           @return The INSERT string
         """
         if not dbif:
             dbif = SQLDatabaseInterfaceConnection()
@@ -388,7 +401,7 @@
         """!Serialize the content of this object and store it in the temporal
            database using the internal identifier
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
         """
         sql, args = self.get_insert_statement()
@@ -407,7 +420,8 @@
         """!Return the sql statement and the argument list 
            in database specific style
            
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The UPDATE string
            
            """
         if ident:
@@ -420,9 +434,10 @@
     def get_update_statement_mogrified(self, dbif=None, ident=None):
         """!Return the update statement as mogrified string
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The UPDATE string
         """
         if not dbif:
             dbif = SQLDatabaseInterfaceConnection()
@@ -435,9 +450,9 @@
 
            Only object entries which are exists (not None) are updated
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
         """
         if self.ident is None:
             raise IOError("Missing identifer")
@@ -458,7 +473,8 @@
         """!Return the sql statement and the argument 
            list in database specific style
            
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The UPDATE string
            """
         if ident:
             return self.serialize("UPDATE ALL", self.get_table_name(), 
@@ -470,9 +486,10 @@
     def get_update_all_statement_mogrified(self, dbif=None, ident=None):
         """!Return the update all statement as mogrified string
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
+           @return The UPDATE string
         """
         if not dbif:
             dbif = SQLDatabaseInterfaceConnection()
@@ -483,9 +500,9 @@
         """!Serialize the content of this object, including None objects, 
         and update it in the temporal database using the internal identifier
 
-           @param dbif: The database interface to be used, 
+           @param dbif The database interface to be used, 
                         if None a temporary connection will be established
-           @param ident: The identifier to be updated, useful for renaming
+           @param ident The identifier to be updated, useful for renaming
         """
         if self.ident is None:
             raise IOError("Missing identifer")
@@ -550,19 +567,19 @@
                  creator=None, ctime=None,ttype=None):
         """!Constructor
         
-            @param table: The name of the temporal database table 
+            @param table The name of the temporal database table 
                           that should be used to store the values
-            @param ident: The unique identifier must be a combination of 
+            @param ident The unique identifier must be a combination of 
                           the dataset name, layer name and the mapset 
                           name at mapset or name:1 at mapset
                           used as as primary key in the temporal database
-            @param name: The name of the map or dataset
-            @param mapset: The name of the mapset 
-            @param creator: The name of the creator
-            @param ctime: The creation datetime object
-            @param ttype: The temporal type
-                * "absolute" Identifier for absolute time
-                * "relative" Identifier for relative time
+            @param name The name of the map or dataset
+            @param mapset The name of the mapset 
+            @param creator The name of the creator
+            @param ctime The creation datetime object
+            @param ttype The temporal type
+                - "absolute" Identifier for absolute time
+                - "relative" Identifier for relative time
         """
 
         SQLDatabaseInterface.__init__(self, table, ident)
@@ -585,7 +602,7 @@
     def set_id(self, ident):
         """!Convenient method to set the unique identifier (primary key)
 
-           @param ident: The unique identifier must be a combination 
+           @param ident The unique identifier must be a combination 
                          of the dataset name, layer name and the mapset 
                          name at mapset or name:1 at mapset
         """
@@ -608,14 +625,14 @@
     def set_name(self, name):
         """!Set the name of the dataset
 
-           @param name: The name of the dataset
+           @param name The name of the dataset
         """
         self.D["name"] = name
 
     def set_mapset(self, mapset):
         """!Set the mapset of the dataset
 
-           @param mapsets: The name of the mapset in which this dataset is stored
+           @param mapsets The name of the mapset in which this dataset is stored
         """
         self.D["mapset"] = mapset
 
@@ -624,14 +641,14 @@
 
            Layer are supported for vector maps
 
-           @param layer: The layer of the map
+           @param layer The layer of the map
         """
         self.D["layer"] = layer
 
     def set_creator(self, creator):
         """!Set the creator of the dataset
 
-           @param creator: The name of the creator
+           @param creator The name of the creator
         """
         self.D["creator"] = creator
 
@@ -639,10 +656,10 @@
         """!Set the creation time of the dataset, 
            if nothing set the current time is used
 
-           @param ctime: The current time of type datetime
+           @param ctime The current time of type datetime
         """
         if ctime is None:
-            self.D["creation_time"] = datetime.now()
+            self.D["creation_time"] = datetime.today()
         else:
             self.D["creation_time"] = ctime
 
@@ -650,7 +667,7 @@
         """!Set the temporal type of the dataset: absolute or relative, 
            if nothing set absolute time will assumed
 
-           @param ttype: The temporal type of the dataset "absolute or relative"
+           @param ttype The temporal type of the dataset "absolute or relative"
         """
         if ttype is None or (ttype != "absolute" and ttype != "relative"):
             self.D["temporal_type"] = "absolute"
@@ -682,7 +699,7 @@
         """!Convenient method to get the unique map identifier 
            without layer information
 
-           @param return the name of the vector map as name at mapset
+           @return the name of the vector map as name at mapset
                   or None in case the id was not set
         """
         if self.id:

Modified: grass/trunk/lib/python/temporal/core.py
===================================================================
--- grass/trunk/lib/python/temporal/core.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/core.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -103,7 +103,7 @@
 
        GUI developer should set this flag to False.
 
-       @param use_ctype: True use ctypes interface, False use grass.script interface
+       @param use_ctype True use ctypes interface, False use grass.script interface
     """
     global use_ctypes_map_access
     use_ctypes_map_access = use_ctypes
@@ -322,8 +322,8 @@
     """!This class represents the database interface connection
 
        The following DBMS are supported:
-         * sqlite via the sqlite3 standard library
-         * postgresql via psycopg2
+         - sqlite via the sqlite3 standard library
+         - postgresql via psycopg2
 
     """
     def __init__(self):
@@ -366,7 +366,7 @@
     def mogrify_sql_statement(self, content):
         """!Return the SQL statement and arguments as executable SQL string
         
-           @param content: The content as tuple with two entries, the first 
+           @param content The content as tuple with two entries, the first 
                            entry is the SQL statement with DBMI specific
                            place holder (?), the second entry is the argument
                            list that should substitue the place holder.

Modified: grass/trunk/lib/python/temporal/datetime_math.py
===================================================================
--- grass/trunk/lib/python/temporal/datetime_math.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/datetime_math.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -558,7 +558,7 @@
         
         Time zones are not supported
         
-        @param time_string: The time string to convert
+        @param time_string The time string to convert
         @return datetime object or None in case of an error
     """
 

Modified: grass/trunk/lib/python/temporal/mapcalc.py
===================================================================
--- grass/trunk/lib/python/temporal/mapcalc.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/mapcalc.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -29,35 +29,35 @@
        the r.mapcalc operators:
        
        Supported operators for relative and absolute time are:
-       * td() - the time delta of the current interval in days 
+       - td() - the time delta of the current interval in days 
          and fractions of days or the unit in case of relative time
-       * start_time() - The start time of the interval from the begin of the time 
+       - start_time() - The start time of the interval from the begin of the time 
          series in days and fractions of days or the unit in case of relative time
-       * end_time() - The end time of the current interval from the begin of the time 
+       - end_time() - The end time of the current interval from the begin of the time 
          series in days and fractions of days or the unit in case of relative time
          
        Supported operators for absolute time:
-       * start_doy() - Day of year (doy) from the start time [1 - 366]
-       * start_dow() - Day of week (dow) from the start time [1 - 7], 
+       - start_doy() - Day of year (doy) from the start time [1 - 366]
+       - start_dow() - Day of week (dow) from the start time [1 - 7], 
          the start of the week is monday == 1
-       * start_year() - The year of the start time [0 - 9999]
-       * start_month() - The month of the start time [1 - 12]
-       * start_week() - Week of year of the start time [1 - 54]
-       * start_day() - Day of month from the start time [1 - 31]
-       * start_hour() - The hour of the start time [0 - 23]
-       * start_minute() - The minute of the start time [0 - 59]
-       * start_second() - The second of the start time [0 - 59]
+       - start_year() - The year of the start time [0 - 9999]
+       - start_month() - The month of the start time [1 - 12]
+       - start_week() - Week of year of the start time [1 - 54]
+       - start_day() - Day of month from the start time [1 - 31]
+       - start_hour() - The hour of the start time [0 - 23]
+       - start_minute() - The minute of the start time [0 - 59]
+       - start_second() - The second of the start time [0 - 59]
 
-       * end_doy() - Day of year (doy) from the end time [1 - 366]
-       * end_dow() - Day of week (dow) from the end time [1 - 7], 
+       - end_doy() - Day of year (doy) from the end time [1 - 366]
+       - end_dow() - Day of week (dow) from the end time [1 - 7], 
          the start of the week is monday == 1
-       * end_year() - The year of the end time [0 - 9999]
-       * end_month() - The month of the end time [1 - 12]
-       * end_week() - Week of year of the end time [1 - 54]
-       * end_day() - Day of month from the end time [1 - 31]
-       * end_hour() - The hour of the end time [0 - 23]
-       * end_minute() - The minute of the end time [0 - 59]
-       * end_second() - The minute of the end time [0 - 59]
+       - end_year() - The year of the end time [0 - 9999]
+       - end_month() - The month of the end time [1 - 12]
+       - end_week() - Week of year of the end time [1 - 54]
+       - end_day() - Day of month from the end time [1 - 31]
+       - end_hour() - The hour of the end time [0 - 23]
+       - end_minute() - The minute of the end time [0 - 59]
+       - end_second() - The minute of the end time [0 - 59]
        
 
        @param input The name of the input space time raster/raster3d dataset
@@ -518,16 +518,16 @@
 def _parse_end_operators(expr, is_time_absolute, current):
     """
        Supported operators for absolute time:
-       * end_doy() - Day of year (doy) from the end time [1 - 366]
-       * end_dow() - Day of week (dow) from the end time [1 - 7], 
+       - end_doy() - Day of year (doy) from the end time [1 - 366]
+       - end_dow() - Day of week (dow) from the end time [1 - 7], 
          the start of the week is monday == 1
-       * end_year() - The year of the end time [0 - 9999]
-       * end_month() - The month of the end time [1 - 12]
-       * end_week() - Week of year of the end time [1 - 54]
-       * end_day() - Day of month from the end time [1 - 31]
-       * end_hour() - The hour of the end time [0 - 23]
-       * end_minute() - The minute of the end time [0 - 59]
-       * end_second() - The minute of the end time [0 - 59]
+       - end_year() - The year of the end time [0 - 9999]
+       - end_month() - The month of the end time [1 - 12]
+       - end_week() - Week of year of the end time [1 - 54]
+       - end_day() - Day of month from the end time [1 - 31]
+       - end_hour() - The hour of the end time [0 - 23]
+       - end_minute() - The minute of the end time [0 - 59]
+       - end_second() - The minute of the end time [0 - 59]
        
        In case of time instances the end_* expression will be replaced by null()
     """

Modified: grass/trunk/lib/python/temporal/pythontemporallib.dox
===================================================================
--- grass/trunk/lib/python/temporal/pythontemporallib.dox	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/pythontemporallib.dox	2013-04-18 22:06:40 UTC (rev 55903)
@@ -4,7 +4,7 @@
 
 Python Temporal GIS package
 
-TODO: add some documentation
+TODO: add more detailed documentation
 
 List of modules:
 
@@ -29,6 +29,7 @@
 handling and representation. 
 
 - python::temporal::abstract_dataset
+- python::temporal::abstract_temporal_dataset
 - python::temporal::abstract_map_dataset
 - python::temporal::abstract_space_time_dataset
 

Modified: grass/trunk/lib/python/temporal/space_time_datasets.py
===================================================================
--- grass/trunk/lib/python/temporal/space_time_datasets.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/space_time_datasets.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -321,7 +321,7 @@
         # Get the data from an existing raster map
         global use_ctypes_map_access
 
-	if use_ctypes_map_access:
+        if use_ctypes_map_access:
             kvp = self.read_info()
         else:
             kvp = raster.raster_info(self.get_id())

Modified: grass/trunk/lib/python/temporal/space_time_datasets_tools.py
===================================================================
--- grass/trunk/lib/python/temporal/space_time_datasets_tools.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/space_time_datasets_tools.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -39,26 +39,26 @@
        It takes care of the correct update of the space time datasets from all
        registered maps.
 
-       @param type: The type of the maps rast, rast3d or vect
-       @param name: The name of the space time dataset
-       @param maps: A comma separated list of map names
-       @param file: Input file one map with start and optional end time, 
+       @param type The type of the maps rast, rast3d or vect
+       @param name The name of the space time dataset
+       @param maps A comma separated list of map names
+       @param file Input file one map with start and optional end time, 
                     one per line
-       @param start: The start date and time of the first raster map
+       @param start The start date and time of the first raster map
                     (format absolute: "yyyy-mm-dd HH:MM:SS" or "yyyy-mm-dd",
                     format relative is integer 5)
-       @param end: The end date and time of the first raster map
+       @param end The end date and time of the first raster map
                    (format absolute: "yyyy-mm-dd HH:MM:SS" or "yyyy-mm-dd",
                    format relative is integer 5)
-       @param unit: The unit of the relative time: years, months, days,
+       @param unit The unit of the relative time: years, months, days,
                     hours, minutes, seconds
-       @param increment: Time increment between maps for time stamp creation
+       @param increment Time increment between maps for time stamp creation
                          (format absolute: NNN seconds, minutes, hours, days,
                          weeks, months, years; format relative: 1.0)
-       @param dbif: The database interface to be used
-       @param interval: If True, time intervals are created in case the start
+       @param dbif The database interface to be used
+       @param interval If True, time intervals are created in case the start
                         time and an increment is provided
-       @param fs: Field separator used in input file
+       @param fs Field separator used in input file
     """
 
     start_time_in_file = False
@@ -313,8 +313,7 @@
     if name and map_object_list:
         core.message(_("Update space time raster dataset"))
         sp.update_from_registered_maps(dbif)
-        
-    sp.update_command_string(dbif=dbif)
+        sp.update_command_string(dbif=dbif)
     
     # Update affected datasets
     if datatsets_to_modify:
@@ -339,22 +338,22 @@
 def assign_valid_time_to_map(ttype, map, start, end, unit, increment=None, mult=1, interval=False):
     """!Assign the valid time to a map dataset
 
-       @param ttype: The temporal type which should be assigned
+       @param ttype The temporal type which should be assigned
                      and which the time format is of
-       @param map: A map dataset object derived from abstract_map_dataset
-       @param start: The start date and time of the first raster map
+       @param map A map dataset object derived from abstract_map_dataset
+       @param start The start date and time of the first raster map
                      (format absolute: "yyyy-mm-dd HH:MM:SS" or "yyyy-mm-dd",
                      format relative is integer 5)
-       @param end: The end date and time of the first raster map
+       @param end The end date and time of the first raster map
                    (format absolute: "yyyy-mm-dd HH:MM:SS" or "yyyy-mm-dd",
                    format relative is integer 5)
-       @param unit: The unit of the relative time: years, months,
+       @param unit The unit of the relative time: years, months,
                     days, hours, minutes, seconds
-       @param increment: Time increment between maps for time stamp creation
+       @param increment Time increment between maps for time stamp creation
                         (format absolute: NNN seconds, minutes, hours, days,
                         weeks, months, years; format relative is integer 1)
-       @param multi: A multiplier for the increment
-       @param interval: If True, time intervals are created in case the start
+       @param multi A multiplier for the increment
+       @param interval If True, time intervals are created in case the start
                         time and an increment is provided
     """
 
@@ -425,9 +424,9 @@
 def dataset_factory(type, id):
     """!A factory functions to create space time or map datasets
 
-       @param type: the dataset type: rast or raster, rast3d,
+       @param type the dataset type: rast or raster, rast3d,
                     vect or vector, strds, str3ds, stvds
-       @param id: The id of the dataset ("name at mapset")
+       @param id The id of the dataset ("name at mapset")
     """
     if type == "strds":
         sp = SpaceTimeRasterDataset(id)
@@ -453,26 +452,26 @@
 def list_maps_of_stds(type, input, columns, order, where, separator, method, header, gran=None):
     """! List the maps of a space time dataset using diffetent methods
 
-        @param type: The type of the maps raster, raster3d or vector
-        @param input: Name of a space time raster dataset
-        @param columns: A comma separated list of columns to be printed to stdout
-        @param order: A comma separated list of columns to order the
+        @param type The type of the maps raster, raster3d or vector
+        @param input Name of a space time raster dataset
+        @param columns A comma separated list of columns to be printed to stdout
+        @param order A comma separated list of columns to order the
                       space time dataset by category
-        @param where: A where statement for selected listing without "WHERE"
+        @param where A where statement for selected listing without "WHERE"
                       e.g: start_time < "2001-01-01" and end_time > "2001-01-01"
-        @param separator: The field separator character between the columns
-        @param method: String identifier to select a method out of cols,
+        @param separator The field separator character between the columns
+        @param method String identifier to select a method out of cols,
                        comma,delta or deltagaps
-            - "cols": Print preselected columns specified by columns
-            - "comma": Print the map ids (name at mapset) as comma separated string
-            - "delta": Print the map ids (name at mapset) with start time,
+            - "cols" Print preselected columns specified by columns
+            - "comma" Print the map ids (name at mapset) as comma separated string
+            - "delta" Print the map ids (name at mapset) with start time,
                        end time, relative length of intervals and the relative
                        distance to the begin
-            - "deltagaps": Same as "delta" with additional listing of gaps.
+            - "deltagaps" Same as "delta" with additional listing of gaps.
                            Gaps can be simply identified as the id is "None"
-            - "gran": List map using the granularity of the space time dataset,
+            - "gran" List map using the granularity of the space time dataset,
                       columns are identical to deltagaps
-        @param header: Set True to print column names
+        @param header Set True to print column names
         @param gran The user defined granule to be used if method=gran is set, in case gran=None the 
             granule of the space time dataset is used
     """
@@ -635,16 +634,16 @@
 
         Attention: Do not use the comma as separator for printing
 
-        @param intype:  Type of the input space time dataset (strds, stvds or str3ds)
-        @param samtype: Type of the sample space time dataset (strds, stvds or str3ds)
-        @param inputs: Name or comma separated names of space time datasets
-        @param sampler: Name of a space time dataset used for temporal sampling
-        @param header: Set True to print column names
-        @param separator: The field separator character between the columns
-        @param method: The method to be used for temporal sampling 
+        @param intype  Type of the input space time dataset (strds, stvds or str3ds)
+        @param samtype Type of the sample space time dataset (strds, stvds or str3ds)
+        @param inputs Name or comma separated names of space time datasets
+        @param sampler Name of a space time dataset used for temporal sampling
+        @param header Set True to print column names
+        @param separator The field separator character between the columns
+        @param method The method to be used for temporal sampling 
                        (start,during,contain,overlap,equal)
-        @param spatial: Perform spatial overlapping check
-        @param print_only: If set True (default) then the result of the sampling will be 
+        @param spatial Perform spatial overlapping check
+        @param print_only If set True (default) then the result of the sampling will be 
                     printed to stdout, if set to False the resulting map matrix 
                     will be returned. 
                     
@@ -865,13 +864,13 @@
        This function is sensitive to the settings in grass.core.overwrite to
        overwrute existing space time datasets.
     
-       @param name: The name of the new space time dataset
-       @param type: The type (strds, stvds, str3ds) of the new space time dataset
-       @param temporaltype: The temporal type (relative or absolute)
-       @param title: The title
-       @param descr: The dataset description
-       @param semantic: Semantical information
-       @param dbif: The temporal database interface to be used
+       @param name The name of the new space time dataset
+       @param type The type (strds, stvds, str3ds) of the new space time dataset
+       @param temporaltype The temporal type (relative or absolute)
+       @param title The title
+       @param descr The dataset description
+       @param semantic Semantical information
+       @param dbif The temporal database interface to be used
        
        @return The new created space time dataset
        

Modified: grass/trunk/lib/python/temporal/spatial_extent.py
===================================================================
--- grass/trunk/lib/python/temporal/spatial_extent.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/spatial_extent.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -117,7 +117,7 @@
          
          @endcode
         
-        @param extent: The spatial extent to check overlapping with
+        @param extent The spatial extent to check overlapping with
         @return True or False
         """
 
@@ -178,7 +178,7 @@
          
          @endcode
          
-         @param extent: The spatial extent to check overlapping with
+         @param extent The spatial extent to check overlapping with
          @return True or False
         """
 
@@ -200,7 +200,7 @@
         """!Return the two dimensional intersection as spatial_extent 
         object or None in case no intersection was found.
        
-        @param extent: The spatial extent to intersect with
+        @param extent The spatial extent to intersect with
          @return The intersection spatial extent
         """
 
@@ -315,7 +315,7 @@
          @endcode
          
          
-         @param extent: The spatial extent to intersect with
+         @param extent The spatial extent to intersect with
          @return The intersection spatial extent
         """
 
@@ -355,7 +355,7 @@
         
         @endverbatim
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         if self.get_projection() != extent.get_projection():
@@ -413,7 +413,7 @@
         
         @endcode
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         if not self.is_in_2d(extent):
@@ -449,7 +449,7 @@
         
         @endcode
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         return extent.is_in_2d(self)
@@ -473,7 +473,7 @@
         
         @endcode
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         return extent.is_in(self)
@@ -495,7 +495,7 @@
         
         @endcode
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         if self.get_projection() != extent.get_projection():
@@ -553,7 +553,7 @@
         
         @endcode
         
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -601,7 +601,7 @@
         - in
         - equivalent
 
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -673,7 +673,7 @@
         - in
         - equivalent
 
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         if self.get_projection() != extent.get_projection():
@@ -763,7 +763,7 @@
         - in
         - equivalent
 
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -779,7 +779,7 @@
         - in
         - equivalent
 
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -807,7 +807,7 @@
         - covered
         - equivalent
            
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -867,7 +867,7 @@
         - covered
         - equivalent
            
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -953,7 +953,7 @@
              
          @endverbatim
            
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -1015,7 +1015,7 @@
         """!Return True if this extent meets with the provided spatial
         extent in three dimensions.
            
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
         eN = extent.get_north()
@@ -1105,7 +1105,7 @@
                      
          @endverbatim
          
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 
@@ -1117,7 +1117,7 @@
         """!Return True if this extent is disjoint with the provided spatial
         extent in three dimensions.
            
-        @param extent: The spatial extent
+        @param extent The spatial extent
         @return True or False
         """
 

Modified: grass/trunk/lib/python/temporal/stds_export.py
===================================================================
--- grass/trunk/lib/python/temporal/stds_export.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/stds_export.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -217,25 +217,25 @@
             of type raster and vector as tar archive that can be reimported 
             with the method import_stds().
 
-            @param input: The name of the space time dataset to export
-            @param output: The name of the archive file
-            @param compression: The compression of the archive file:
-              * "no"  no compression
-              * "gzip" GNU zip compression
-              * "bzip2" Bzip compression
-            @param workdir: The working directory used for extraction and packing
-            @param where: The temporal WHERE SQL statement to select a subset 
+            @param input The name of the space time dataset to export
+            @param output The name of the archive file
+            @param compression The compression of the archive file:
+              - "no"  no compression
+              - "gzip" GNU zip compression
+              - "bzip2" Bzip compression
+            @param workdir The working directory used for extraction and packing
+            @param where The temporal WHERE SQL statement to select a subset 
                           of maps from the space time dataset
-            @param format:_ The export format:
-              * "GTiff" Geotiff format, only for raster maps
-              * "pack" The GRASS raster, 3D raster or vector Pack format, 
+            @param format_ The export format:
+              - "GTiff" Geotiff format, only for raster maps
+              - "pack" The GRASS raster, 3D raster or vector Pack format, 
                        this is the default setting
-              * "GML" GML file export format, only for vector maps, 
+              - "GML" GML file export format, only for vector maps, 
                       v.out.ogr export option
-            @param type_: The space time dataset type
-              * "strds" Space time raster dataset
-              * "str3ds" Space time 3D raster dataset
-              * "stvds" Space time vector dataset
+            @param type_ The space time dataset type
+              - "strds" Space time raster dataset
+              - "str3ds" Space time 3D raster dataset
+              - "stvds" Space time vector dataset
     """
     mapset = core.gisenv()["MAPSET"]
 

Modified: grass/trunk/lib/python/temporal/stds_import.py
===================================================================
--- grass/trunk/lib/python/temporal/stds_import.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/stds_import.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -153,21 +153,21 @@
         link=False, exp=False, overr=False, create=False, stds_type="strds"):
     """!Import space time datasets of type raster and vector
 
-        @param input: Name of the input archive file
-        @param output: The name of the output space time dataset
-        @param extrdir: The extraction directory
-        @param title: The title of the new created space time dataset
-        @param description: The description of the new created 
+        @param input Name of the input archive file
+        @param output The name of the output space time dataset
+        @param extrdir The extraction directory
+        @param title The title of the new created space time dataset
+        @param description The description of the new created 
                             space time dataset
-        @param location: The name of the location that should be created,
+        @param location The name of the location that should be created,
                         maps are imported into this location
-        @param link: Switch to link raster maps instead importing them
-        @param exp: Extend location extents based on new dataset
-        @param overr: Override projection (use location's projection)
-        @param create: Create the location specified by the "location" 
+        @param link Switch to link raster maps instead importing them
+        @param exp Extend location extents based on new dataset
+        @param overr Override projection (use location's projection)
+        @param create Create the location specified by the "location" 
                       parameter and exit.
                       Do not import the space time datasets.
-        @param stds_type: The type of the space time dataset that 
+        @param stds_type The type of the space time dataset that 
                           should be imported
     """
 

Modified: grass/trunk/lib/python/temporal/temporal_extent.py
===================================================================
--- grass/trunk/lib/python/temporal/temporal_extent.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/temporal_extent.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -817,9 +817,9 @@
         """!Set the type of the map time
 
            Registered maps may have different types of time:
-           * Single point of time "point"
-           * Time intervals "interval"
-           * Single point and interval time "mixed"
+           - Single point of time "point"
+           - Time intervals "interval"
+           - Single point and interval time "mixed"
 
            This variable will be set automatically when maps are registered.
         """

Modified: grass/trunk/lib/python/temporal/temporal_granularity.py
===================================================================
--- grass/trunk/lib/python/temporal/temporal_granularity.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/temporal_granularity.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -104,7 +104,7 @@
         is only correct in case of not overlapping intervals. 
         Hence a correct temporal topology is required for computation.
 
-        @param maps: a ordered by start_time list of map objects
+        @param maps a ordered by start_time list of map objects
         @return An integer
         
         
@@ -248,7 +248,7 @@
         The computed granularity is returned as number of seconds or minutes or hours
         or days or months or years. 
 
-        @param maps: a ordered by start_time list of map objects
+        @param maps a ordered by start_time list of map objects
         @return The temporal topology as string "integer unit"
         
         @code

Modified: grass/trunk/lib/python/temporal/temporal_relationships.py
===================================================================
--- grass/trunk/lib/python/temporal/temporal_relationships.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/temporal_relationships.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -42,7 +42,6 @@
 
         # Now lets build the temporal topology of the maps in the list
         
-        identical = False
         tb = TemporalTopologyBuilder()
         
         tb.build(maps)
@@ -107,7 +106,7 @@
            The maps will be added to the object, so they can be 
            accessed using the iterator of this class
 
-           @param maps: A sorted (by start_time)list of abstract_dataset 
+           @param maps A sorted (by start_time)list of abstract_dataset 
                         objects with initiated temporal extent
         """
         self._build_iteratable(maps)
@@ -125,7 +124,7 @@
            Basically the "next" and "prev" relations will be set in 
            the temporal topology structure of each map.
 
-           @param maps: A sorted (by start_time)list of abstract_dataset 
+           @param maps A sorted (by start_time)list of abstract_dataset 
                         objects with initiated temporal extent
         """
 #        for i in xrange(len(maps)):
@@ -196,9 +195,9 @@
            The implemented iterator assures
            the chronological iteration over the mapsA.
 
-           @param mapsA: A list of abstract_dataset 
+           @param mapsA A list of abstract_dataset 
                          objects with initiated temporal extent
-           @param mapsB: An optional list of abstract_dataset 
+           @param mapsB An optional list of abstract_dataset 
                          objects with initiated temporal extent
         """
 
@@ -362,11 +361,11 @@
     """!Print the temporal relationships of the 
        map lists maps1 and maps2 to stdout.
 
-        @param maps1: A list of abstract_dataset 
+        @param maps1 A list of abstract_dataset 
                       objects with initiated temporal extent
-        @param maps2: An optional list of abstract_dataset 
+        @param maps2 An optional list of abstract_dataset 
                       objects with initiated temporal extent
-        @param dbif: The database interface to be used
+        @param dbif The database interface to be used
     """
                     
     tb = TemporalTopologyBuilder()
@@ -390,11 +389,11 @@
     """!Count the temporal relations of a single list of maps or between two lists of maps
 
 
-        @param maps1: A list of abstract_dataset 
+        @param maps1 A list of abstract_dataset 
                       objects with initiated temporal extent
-        @param maps2: A list of abstract_dataset 
+        @param maps2 A list of abstract_dataset 
                       objects with initiated temporal extent
-        @param dbif: The database interface to be used
+        @param dbif The database interface to be used
         @return A dictionary with counted temporal relationships
     """
 
@@ -427,9 +426,9 @@
                         use_follows=False, use_precedes=False):
     """!Create a SQL WHERE statement for temporal relation selection of maps in space time datasets
 
-        @param start: The start time
-        @param end: The end time
-        @param use_start: Select maps of which the start time is located in the selection granule
+        @param start The start time
+        @param end The end time
+        @param use_start Select maps of which the start time is located in the selection granule
                          @verbatim
                          map    :        s
                          granule:  s-----------------e
@@ -441,13 +440,13 @@
                          granule:  s-----------------e
                          @endverbatim
 
-        @param use_during: during: Select maps which are temporal during the selection granule
+        @param use_during Select maps which are temporal during the selection granule
                          @verbatim
                          map    :     s-----------e
                          granule:  s-----------------e
                          @endverbatim
 
-        @param use_overlap: Select maps which temporal overlap the selection granule
+        @param use_overlap Select maps which temporal overlap the selection granule
                          @verbatim
                          map    :     s-----------e
                          granule:        s-----------------e
@@ -456,25 +455,25 @@
                          granule:  s----------e
                          @endverbatim
 
-        @param use_contain: Select maps which temporally contain the selection granule
+        @param use_contain Select maps which temporally contain the selection granule
                          @verbatim
                          map    :  s-----------------e
                          granule:     s-----------e
                          @endverbatim
 
-        @param use_equal: Select maps which temporally equal to the selection granule
+        @param use_equal Select maps which temporally equal to the selection granule
                          @verbatim
                          map    :  s-----------e
                          granule:  s-----------e
                          @endverbatim
 
-        @param use_follows: Select maps which temporally follow the selection granule
+        @param use_follows Select maps which temporally follow the selection granule
                          @verbatim
                          map    :              s-----------e
                          granule:  s-----------e
                          @endverbatim
 
-        @param use_precedes: Select maps which temporally precedes the selection granule
+        @param use_precedes Select maps which temporally precedes the selection granule
                          @verbatim
                          map    :  s-----------e
                          granule:              s-----------e

Modified: grass/trunk/lib/python/temporal/univar_statistics.py
===================================================================
--- grass/trunk/lib/python/temporal/univar_statistics.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/lib/python/temporal/univar_statistics.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -118,16 +118,16 @@
                                            where, extended, header, fs):
     """!Print univariate statistics for a space time vector dataset
 
-       @param input: The name of the space time dataset
-       @param twhere: A temporal database where statement
-       @param layer: The layer number used in case no layer is present 
+       @param input The name of the space time dataset
+       @param twhere A temporal database where statement
+       @param layer The layer number used in case no layer is present 
               in the temporal dataset
-       @param type: options: point,line,boundary,centroid,area
-       @param column: The name of the attribute column
-       @param where: A temporal database where statement
-       @param extended: If True compute extended statistics
-       @param header:   If True print column names as header
-       @param fs: Field separator
+       @param type options: point,line,boundary,centroid,area
+       @param column The name of the attribute column
+       @param where A temporal database where statement
+       @param extended If True compute extended statistics
+       @param header   If True print column names as header
+       @param fs Field separator
     """
 
     # We need a database interface

Modified: grass/trunk/temporal/t.unregister/t.unregister.py
===================================================================
--- grass/trunk/temporal/t.unregister/t.unregister.py	2013-04-18 16:35:32 UTC (rev 55902)
+++ grass/trunk/temporal/t.unregister/t.unregister.py	2013-04-18 22:06:40 UTC (rev 55903)
@@ -51,7 +51,7 @@
 
     # Get the options
     file = options["file"]
-    name = options["input"]
+    input = options["input"]
     maps = options["maps"]
     type = options["type"]
 
@@ -71,12 +71,12 @@
     dbif.connect()
 
     # In case a space time dataset is specified
-    if name:
+    if input:
         # Check if the dataset name contains the mapset as well
-        if name.find("@") < 0:
-            id = name + "@" + mapset
+        if input.find("@") < 0:
+            id = input + "@" + mapset
         else:
-            id = name
+            id = input
 
         if type == "rast":
             sp = tgis.dataset_factory("strds", id)
@@ -128,7 +128,7 @@
     statement = ""
 
     # Unregister already registered maps
-    grass.message(_("Unregistered maps"))
+    grass.message(_("Unregister maps"))
     for mapid in maplist:
         if count%10 == 0:
             grass.percent(count, num_maps, 1)
@@ -138,7 +138,7 @@
         # Unregister map if in database
         if map.is_in_db(dbif) == True:
             # Unregister from a single dataset
-            if name:
+            if input:
                 sp.metadata.select(dbif)
                 # Collect SQL statements
                 statement += sp.unregister_map(
@@ -167,9 +167,9 @@
     grass.percent(num_maps, num_maps, 1)
 
     # Update space time datasets
-
-    grass.message(_("Unregistered maps from space time dataset(s)"))
-    if name:
+    grass.message(_("Unregister maps from space time dataset(s)"))
+    if input:
+        sp.metadata.select(dbif)
         sp.update_from_registered_maps(dbif)
         sp.update_command_string(dbif=dbif)
     elif len(update_dict) > 0:



More information about the grass-commit mailing list