12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706 |
- """
- Metadata classes for map layer and space time datasets
- Usage:
- .. code-block:: python
- >>> import grass.temporal as tgis
- >>> tgis.init()
- >>> meta = tgis.RasterMetadata()
- >>> meta = tgis.Raster3DMetadata()
- >>> meta = tgis.VectorMetadata()
- >>> meta = tgis.STRDSMetadata()
- >>> meta = tgis.STR3DSMetadata()
- >>> meta = tgis.STVDSMetadata()
- (C) 2012-2013 by the GRASS Development Team
- This program is free software under the GNU General Public
- License (>=v2). Read the file COPYING that comes with GRASS
- for details.
- :authors: Soeren Gebbert
- """
- from __future__ import print_function
- from .base import *
- ###############################################################################
- class RasterMetadataBase(SQLDatabaseInterface):
- """This is the metadata base class for time stamped raster and raster3d maps
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = RasterMetadataBase(table="metadata", ident="soil@PERMANENT",
- ... datatype="CELL", cols=100, rows=100, number_of_cells=10000, nsres=0.1,
- ... ewres=0.1, min=0, max=100)
- >>> meta.datatype
- 'CELL'
- >>> meta.cols
- 100
- >>> meta.rows
- 100
- >>> meta.number_of_cells
- 10000
- >>> meta.nsres
- 0.1
- >>> meta.ewres
- 0.1
- >>> meta.min
- 0.0
- >>> meta.max
- 100.0
- >>> meta.print_info()
- | Datatype:................... CELL
- | Number of columns:.......... 100
- | Number of rows:............. 100
- | Number of cells:............ 10000
- | North-South resolution:..... 0.1
- | East-west resolution:....... 0.1
- | Minimum value:.............. 0.0
- | Maximum value:.............. 100.0
- >>> meta.print_shell_info()
- datatype=CELL
- cols=100
- rows=100
- number_of_cells=10000
- nsres=0.1
- ewres=0.1
- min=0.0
- max=100.0
- """
- def __init__(self, table=None, ident=None, datatype=None, cols=None,
- rows=None, number_of_cells=None, nsres=None, ewres=None,
- min=None, max=None):
- SQLDatabaseInterface.__init__(self, table, ident)
- self.set_id(ident)
- self.set_datatype(datatype)
- self.set_cols(cols)
- self.set_rows(rows)
- self.set_number_of_cells(number_of_cells)
- self.set_nsres(nsres)
- self.set_ewres(ewres)
- self.set_min(min)
- self.set_max(max)
- def set_id(self, ident):
- """Convenient method to set the unique identifier (primary key)"""
- self.ident = ident
- self.D["id"] = ident
- def set_datatype(self, datatype):
- """Set the datatype"""
- self.D["datatype"] = datatype
- def set_cols(self, cols):
- """Set the number of cols"""
- if cols is not None:
- self.D["cols"] = int(cols)
- else:
- self.D["cols"] = None
- def set_rows(self, rows):
- """Set the number of rows"""
- if rows is not None:
- self.D["rows"] = int(rows)
- else:
- self.D["rows"] = None
- def set_number_of_cells(self, number_of_cells):
- """Set the number of cells"""
- if number_of_cells is not None:
- self.D["number_of_cells"] = int(number_of_cells)
- else:
- self.D["number_of_cells"] = None
- def set_nsres(self, nsres):
- """Set the north-south resolution"""
- if nsres is not None:
- self.D["nsres"] = float(nsres)
- else:
- self.D["nsres"] = None
- def set_ewres(self, ewres):
- """Set the east-west resolution"""
- if ewres is not None:
- self.D["ewres"] = float(ewres)
- else:
- self.D["ewres"] = None
- def set_min(self, min):
- """Set the minimum raster value"""
- if min is not None:
- self.D["min"] = float(min)
- else:
- self.D["min"] = None
- def set_max(self, max):
- """Set the maximum raster value"""
- if max is not None:
- self.D["max"] = float(max)
- else:
- self.D["max"] = None
- def get_id(self):
- """Convenient method to get the unique identifier (primary key)
- :return: None if not found
- """
- if "id" in self.D:
- return self.D["id"]
- else:
- return None
- def get_datatype(self):
- """Get the map type
- :return: None if not found"""
- if "datatype" in self.D:
- return self.D["datatype"]
- else:
- return None
- def get_cols(self):
- """Get number of cols
- :return: None if not found"""
- if "cols" in self.D:
- return self.D["cols"]
- else:
- return None
- def get_rows(self):
- """Get number of rows
- :return: None if not found"""
- if "rows" in self.D:
- return self.D["rows"]
- else:
- return None
- def get_number_of_cells(self):
- """Get number of cells
- :return: None if not found"""
- if "number_of_cells" in self.D:
- return self.D["number_of_cells"]
- else:
- return None
- def get_nsres(self):
- """Get the north-south resolution
- :return: None if not found"""
- if "nsres" in self.D:
- return self.D["nsres"]
- else:
- return None
- def get_ewres(self):
- """Get east-west resolution
- :return: None if not found"""
- if "ewres" in self.D:
- return self.D["ewres"]
- else:
- return None
- def get_min(self):
- """Get the minimum cell value
- :return: None if not found"""
- if "min" in self.D:
- return self.D["min"]
- else:
- return None
- def get_max(self):
- """Get the maximum cell value
- :return: None if not found"""
- if "max" in self.D:
- return self.D["max"]
- else:
- return None
- # Properties
- datatype = property(fget=get_datatype, fset=set_datatype)
- cols = property(fget=get_cols, fset=set_cols)
- rows = property(fget=get_rows, fset=set_rows)
- number_of_cells = property(fget=get_number_of_cells,
- fset=set_number_of_cells)
- nsres = property(fget=get_nsres, fset=set_nsres)
- ewres = property(fget=get_ewres, fset=set_ewres)
- min = property(fget=get_min, fset=set_min)
- max = property(fget=get_max, fset=set_max)
- def print_info(self):
- """Print information about this class in human readable style"""
- # 0123456789012345678901234567890
- print(" | Datatype:................... " + str(self.get_datatype()))
- print(" | Number of columns:.......... " + str(self.get_cols()))
- print(" | Number of rows:............. " + str(self.get_rows()))
- print(" | Number of cells:............ " + str(
- self.get_number_of_cells()))
- print(" | North-South resolution:..... " + str(self.get_nsres()))
- print(" | East-west resolution:....... " + str(self.get_ewres()))
- print(" | Minimum value:.............. " + str(self.get_min()))
- print(" | Maximum value:.............. " + str(self.get_max()))
- def print_shell_info(self):
- """Print information about this class in shell style"""
- print("datatype=" + str(self.get_datatype()))
- print("cols=" + str(self.get_cols()))
- print("rows=" + str(self.get_rows()))
- print("number_of_cells=" + str(self.get_number_of_cells()))
- print("nsres=" + str(self.get_nsres()))
- print("ewres=" + str(self.get_ewres()))
- print("min=" + str(self.get_min()))
- print("max=" + str(self.get_max()))
- ###############################################################################
- class RasterMetadata(RasterMetadataBase):
- """This is the raster metadata class
- This class is the interface to the raster_metadata table in the
- temporal database that stores the metadata of all registered raster maps.
- The metadata includes the datatype, number of cols, rows and cells and
- the north-south and east west resolution of the map. Additionally the
- minimum and maximum valuesare stored.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = RasterMetadata(ident="soil@PERMANENT",
- ... datatype="CELL", cols=100, rows=100, number_of_cells=10000, nsres=0.1,
- ... ewres=0.1, min=0, max=100)
- >>> meta.datatype
- 'CELL'
- >>> meta.cols
- 100
- >>> meta.rows
- 100
- >>> meta.number_of_cells
- 10000
- >>> meta.nsres
- 0.1
- >>> meta.ewres
- 0.1
- >>> meta.min
- 0.0
- >>> meta.max
- 100.0
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | Datatype:................... CELL
- | Number of columns:.......... 100
- | Number of rows:............. 100
- | Number of cells:............ 10000
- | North-South resolution:..... 0.1
- | East-west resolution:....... 0.1
- | Minimum value:.............. 0.0
- | Maximum value:.............. 100.0
- >>> meta.print_shell_info()
- datatype=CELL
- cols=100
- rows=100
- number_of_cells=10000
- nsres=0.1
- ewres=0.1
- min=0.0
- max=100.0
- """
- def __init__(self, ident=None, datatype=None,
- cols=None, rows=None, number_of_cells=None, nsres=None,
- ewres=None, min=None, max=None):
- RasterMetadataBase.__init__(self, "raster_metadata", ident, datatype,
- cols, rows, number_of_cells, nsres,
- ewres, min, max)
- def print_info(self):
- """Print information about this class in human readable style"""
- print(" +-------------------- Metadata information ----------------------------------+")
- # 0123456789012345678901234567890
- RasterMetadataBase.print_info(self)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- RasterMetadataBase.print_shell_info(self)
- ###############################################################################
- class Raster3DMetadata(RasterMetadataBase):
- """This is the raster3d metadata class
- This class is the interface to the raster3d_metadata table in the
- temporal database that stores the metadata of all registered
- 3D raster maps.
- The metadata includes all raster metadata variables and additional
- the number of depths, the top-bottom resolution and the space time 3D
- raster dataset register table is stored.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = Raster3DMetadata(ident="soil@PERMANENT",
- ... datatype="FCELL", cols=100, rows=100, depths=100,
- ... number_of_cells=1000000, nsres=0.1, ewres=0.1, tbres=0.1,
- ... min=0, max=100)
- >>> meta.datatype
- 'FCELL'
- >>> meta.cols
- 100
- >>> meta.rows
- 100
- >>> meta.depths
- 100
- >>> meta.number_of_cells
- 1000000
- >>> meta.nsres
- 0.1
- >>> meta.ewres
- 0.1
- >>> meta.tbres
- 0.1
- >>> meta.min
- 0.0
- >>> meta.max
- 100.0
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | Datatype:................... FCELL
- | Number of columns:.......... 100
- | Number of rows:............. 100
- | Number of cells:............ 1000000
- | North-South resolution:..... 0.1
- | East-west resolution:....... 0.1
- | Minimum value:.............. 0.0
- | Maximum value:.............. 100.0
- | Number of depths:........... 100
- | Top-Bottom resolution:...... 0.1
- >>> meta.print_shell_info()
- datatype=FCELL
- cols=100
- rows=100
- number_of_cells=1000000
- nsres=0.1
- ewres=0.1
- min=0.0
- max=100.0
- depths=100
- tbres=0.1
- """
- def __init__(self, ident=None, datatype=None,
- cols=None, rows=None, depths=None, number_of_cells=None,
- nsres=None, ewres=None, tbres=None, min=None, max=None):
- RasterMetadataBase.__init__(self, "raster3d_metadata", ident,
- datatype, cols, rows, number_of_cells,
- nsres, ewres, min, max)
- self.set_tbres(tbres)
- self.set_depths(depths)
- def set_depths(self, depths):
- """Set the number of depths"""
- if depths is not None:
- self.D["depths"] = int(depths)
- else:
- self.D["depths"] = None
- def set_tbres(self, tbres):
- """Set the top-bottom resolution"""
- if tbres is not None:
- self.D["tbres"] = float(tbres)
- else:
- self.D["tbres"] = None
- def get_depths(self):
- """Get number of depths
- :return: None if not found"""
- if "depths" in self.D:
- return self.D["depths"]
- else:
- return None
- def get_tbres(self):
- """Get top-bottom resolution
- :return: None if not found"""
- if "tbres" in self.D:
- return self.D["tbres"]
- else:
- return None
- depths = property(fget=get_depths, fset=set_depths)
- tbres = property(fget=get_tbres, fset=set_tbres)
- def print_info(self):
- """Print information about this class in human readable style"""
- print(" +-------------------- Metadata information ----------------------------------+")
- # 0123456789012345678901234567890
- RasterMetadataBase.print_info(self)
- # 0123456789012345678901234567890
- print(" | Number of depths:........... " + str(self.get_depths()))
- print(" | Top-Bottom resolution:...... " + str(self.get_tbres()))
- def print_shell_info(self):
- """Print information about this class in shell style"""
- RasterMetadataBase.print_shell_info(self)
- print("depths=" + str(self.get_depths()))
- print("tbres=" + str(self.get_tbres()))
- ###############################################################################
- class VectorMetadata(SQLDatabaseInterface):
- """This is the vector metadata class
- This class is the interface to the vector_metadata table in the
- temporal database that stores the metadata of all registered
- vector maps.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = VectorMetadata(ident="lidar@PERMANENT", is_3d=True,
- ... number_of_points=1, number_of_lines=2, number_of_boundaries=3,
- ... number_of_centroids=4, number_of_faces=5, number_of_kernels=6,
- ... number_of_primitives=7, number_of_nodes=8, number_of_areas=9,
- ... number_of_islands=10, number_of_holes=11, number_of_volumes=12)
- >>> meta.id
- 'lidar@PERMANENT'
- >>> meta.is_3d
- True
- >>> meta.number_of_points
- 1
- >>> meta.number_of_lines
- 2
- >>> meta.number_of_boundaries
- 3
- >>> meta.number_of_centroids
- 4
- >>> meta.number_of_faces
- 5
- >>> meta.number_of_kernels
- 6
- >>> meta.number_of_primitives
- 7
- >>> meta.number_of_nodes
- 8
- >>> meta.number_of_areas
- 9
- >>> meta.number_of_islands
- 10
- >>> meta.number_of_holes
- 11
- >>> meta.number_of_volumes
- 12
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | Is map 3d .................. True
- | Number of points ........... 1
- | Number of lines ............ 2
- | Number of boundaries ....... 3
- | Number of centroids ........ 4
- | Number of faces ............ 5
- | Number of kernels .......... 6
- | Number of primitives ....... 7
- | Number of nodes ............ 8
- | Number of areas ............ 9
- | Number of islands .......... 10
- | Number of holes ............ 11
- | Number of volumes .......... 12
- >>> meta.print_shell_info()
- is_3d=True
- points=1
- lines=2
- boundaries=3
- centroids=4
- faces=5
- kernels=6
- primitives=7
- nodes=8
- areas=9
- islands=10
- holes=11
- volumes=12
- """
- def __init__(self, ident=None, is_3d=False, number_of_points=None,
- number_of_lines=None, number_of_boundaries=None,
- number_of_centroids=None, number_of_faces=None,
- number_of_kernels=None, number_of_primitives=None,
- number_of_nodes=None, number_of_areas=None,
- number_of_islands=None, number_of_holes=None,
- number_of_volumes=None):
- SQLDatabaseInterface.__init__(self, "vector_metadata", ident)
- self.set_id(ident)
- self.set_3d_info(is_3d)
- self.set_number_of_points(number_of_points)
- self.set_number_of_lines(number_of_lines)
- self.set_number_of_boundaries(number_of_boundaries)
- self.set_number_of_centroids(number_of_centroids)
- self.set_number_of_faces(number_of_faces)
- self.set_number_of_kernels(number_of_kernels)
- self.set_number_of_primitives(number_of_primitives)
- self.set_number_of_nodes(number_of_nodes)
- self.set_number_of_areas(number_of_areas)
- self.set_number_of_islands(number_of_islands)
- self.set_number_of_holes(number_of_holes)
- self.set_number_of_volumes(number_of_volumes)
- def set_id(self, ident):
- """Convenient method to set the unique identifier (primary key)"""
- self.ident = ident
- self.D["id"] = ident
- def set_3d_info(self, is_3d):
- """Set True if the vector map is three dimensional"""
- self.D["is_3d"] = is_3d
- def set_number_of_points(self, number_of_points):
- """Set the number of points of the vector map"""
- self.D["points"] = number_of_points
- def set_number_of_lines(self, number_of_lines):
- """Set the number of lines of the vector map"""
- self.D["lines"] = number_of_lines
- def set_number_of_boundaries(self, number_of_boundaries):
- """Set the number of boundaries of the vector map"""
- self.D["boundaries"] = number_of_boundaries
- def set_number_of_centroids(self, number_of_centroids):
- """Set the number of centroids of the vector map"""
- self.D["centroids"] = number_of_centroids
- def set_number_of_faces(self, number_of_faces):
- """Set the number of faces of the vector map"""
- self.D["faces"] = number_of_faces
- def set_number_of_kernels(self, number_of_kernels):
- """Set the number of kernels of the vector map"""
- self.D["kernels"] = number_of_kernels
- def set_number_of_primitives(self, number_of_primitives):
- """Set the number of primitives of the vector map"""
- self.D["primitives"] = number_of_primitives
- def set_number_of_nodes(self, number_of_nodes):
- """Set the number of nodes of the vector map"""
- self.D["nodes"] = number_of_nodes
- def set_number_of_areas(self, number_of_areas):
- """Set the number of areas of the vector map"""
- self.D["areas"] = number_of_areas
- def set_number_of_islands(self, number_of_islands):
- """Set the number of islands of the vector map"""
- self.D["islands"] = number_of_islands
- def set_number_of_holes(self, number_of_holes):
- """Set the number of holes of the vector map"""
- self.D["holes"] = number_of_holes
- def set_number_of_volumes(self, number_of_volumes):
- """Set the number of volumes of the vector map"""
- self.D["volumes"] = number_of_volumes
- def get_id(self):
- """Convenient method to get the unique identifier (primary key)
- :return: None if not found
- """
- if "id" in self.D:
- return self.D["id"]
- else:
- return None
- def get_3d_info(self):
- """Return True if the map is three dimensional,
- False if not and None if not info was found"""
- if "is_3d" in self.D:
- return self.D["is_3d"]
- else:
- return None
- def get_number_of_points(self):
- """Get the number of points of the vector map
- :return: None if not found"""
- if "points" in self.D:
- return self.D["points"]
- else:
- return None
- def get_number_of_lines(self):
- """Get the number of lines of the vector map
- :return: None if not found"""
- if "lines" in self.D:
- return self.D["lines"]
- else:
- return None
- def get_number_of_boundaries(self):
- """Get the number of boundaries of the vector map
- :return: None if not found"""
- if "boundaries" in self.D:
- return self.D["boundaries"]
- else:
- return None
- def get_number_of_centroids(self):
- """Get the number of centroids of the vector map
- :return: None if not found"""
- if "centroids" in self.D:
- return self.D["centroids"]
- else:
- return None
- def get_number_of_faces(self):
- """Get the number of faces of the vector map
- :return: None if not found"""
- if "faces" in self.D:
- return self.D["faces"]
- else:
- return None
- def get_number_of_kernels(self):
- """Get the number of kernels of the vector map
- :return: None if not found"""
- if "kernels" in self.D:
- return self.D["kernels"]
- else:
- return None
- def get_number_of_primitives(self):
- """Get the number of primitives of the vector map
- :return: None if not found"""
- if "primitives" in self.D:
- return self.D["primitives"]
- else:
- return None
- def get_number_of_nodes(self):
- """Get the number of nodes of the vector map
- :return: None if not found"""
- if "nodes" in self.D:
- return self.D["nodes"]
- else:
- return None
- def get_number_of_areas(self):
- """Get the number of areas of the vector map
- :return: None if not found"""
- if "areas" in self.D:
- return self.D["areas"]
- else:
- return None
- def get_number_of_islands(self):
- """Get the number of islands of the vector map
- :return: None if not found"""
- if "islands" in self.D:
- return self.D["islands"]
- else:
- return None
- def get_number_of_holes(self):
- """Get the number of holes of the vector map
- :return: None if not found"""
- if "holes" in self.D:
- return self.D["holes"]
- else:
- return None
- def get_number_of_volumes(self):
- """Get the number of volumes of the vector map
- :return: None if not found"""
- if "volumes" in self.D:
- return self.D["volumes"]
- else:
- return None
- # Set the properties
- id = property(fget=get_id, fset=set_id)
- is_3d = property(fget=get_3d_info, fset=set_3d_info)
- number_of_points = property(fget=get_number_of_points,
- fset=set_number_of_points)
- number_of_lines = property(fget=get_number_of_lines,
- fset=set_number_of_lines)
- number_of_boundaries = property(fget=get_number_of_boundaries,
- fset=set_number_of_boundaries)
- number_of_centroids = property(fget=get_number_of_centroids,
- fset=set_number_of_centroids)
- number_of_faces = property(fget=get_number_of_faces,
- fset=set_number_of_faces)
- number_of_kernels = property(fget=get_number_of_kernels,
- fset=set_number_of_kernels)
- number_of_primitives = property(fget=get_number_of_primitives,
- fset=set_number_of_primitives)
- number_of_nodes = property(fget=get_number_of_nodes,
- fset=set_number_of_nodes)
- number_of_areas = property(fget=get_number_of_areas,
- fset=set_number_of_areas)
- number_of_islands = property(fget=get_number_of_islands,
- fset=set_number_of_islands)
- number_of_holes = property(fget=get_number_of_holes,
- fset=set_number_of_holes)
- number_of_volumes = property(fget=get_number_of_volumes,
- fset=set_number_of_volumes)
- def print_info(self):
- """Print information about this class in human readable style"""
- # 0123456789012345678901234567890
- print(" +-------------------- Metadata information ----------------------------------+")
- print(" | Is map 3d .................. " + str(self.get_3d_info()))
- print(" | Number of points ........... " + str(self.get_number_of_points()))
- print(" | Number of lines ............ " + str(self.get_number_of_lines()))
- print(" | Number of boundaries ....... " + str(self.get_number_of_boundaries()))
- print(" | Number of centroids ........ " + str(self.get_number_of_centroids()))
- print(" | Number of faces ............ " + str(self.get_number_of_faces()))
- print(" | Number of kernels .......... " + str(self.get_number_of_kernels()))
- print(" | Number of primitives ....... " + str(self.get_number_of_primitives()))
- print(" | Number of nodes ............ " + str(self.get_number_of_nodes()))
- print(" | Number of areas ............ " + str(self.get_number_of_areas()))
- print(" | Number of islands .......... " + str(self.get_number_of_islands()))
- print(" | Number of holes ............ " + str(self.get_number_of_holes()))
- print(" | Number of volumes .......... " + str(self.get_number_of_volumes()))
- def print_shell_info(self):
- """Print information about this class in shell style"""
- print("is_3d=" + str(self.get_3d_info()))
- print("points=" + str(self.get_number_of_points()))
- print("lines=" + str(self.get_number_of_lines()))
- print("boundaries=" + str(self.get_number_of_boundaries()))
- print("centroids=" + str(self.get_number_of_centroids()))
- print("faces=" + str(self.get_number_of_faces()))
- print("kernels=" + str(self.get_number_of_kernels()))
- print("primitives=" + str(self.get_number_of_primitives()))
- print("nodes=" + str(self.get_number_of_nodes()))
- print("areas=" + str(self.get_number_of_areas()))
- print("islands=" + str(self.get_number_of_islands()))
- print("holes=" + str(self.get_number_of_holes()))
- print("volumes=" + str(self.get_number_of_volumes()))
- ###############################################################################
- class STDSMetadataBase(SQLDatabaseInterface):
- """This is the space time dataset metadata base class for
- strds, stvds and str3ds datasets
- setting/getting the id, the title and the description
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = STDSMetadataBase(ident="soils@PERMANENT",
- ... title="Soils", description="Soils 1950 - 2010")
- >>> meta.id
- 'soils@PERMANENT'
- >>> meta.title
- 'Soils'
- >>> meta.description
- 'Soils 1950 - 2010'
- >>> meta.number_of_maps
- >>> meta.print_info()
- | Number of registered maps:.. None
- |
- | Title:
- | Soils
- | Description:
- | Soils 1950 - 2010
- | Command history:
- >>> meta.print_shell_info()
- number_of_maps=None
- """
- def __init__(self, table=None, ident=None, title=None, description=None,
- command=None):
- SQLDatabaseInterface.__init__(self, table, ident)
- self.set_id(ident)
- self.set_title(title)
- self.set_description(description)
- self.set_command(command)
- # No setter for this
- self.D["number_of_maps"] = None
- def set_id(self, ident):
- """Convenient method to set the unique identifier (primary key)"""
- self.ident = ident
- self.D["id"] = ident
- def set_title(self, title):
- """Set the title"""
- self.D["title"] = title
- def set_description(self, description):
- """Set the number of cols"""
- self.D["description"] = description
- def set_command(self, command):
- """Set the number of cols"""
- self.D["command"] = command
- def get_id(self):
- """Convenient method to get the unique identifier (primary key)
- :return: None if not found
- """
- if "id" in self.D:
- return self.D["id"]
- else:
- return None
- def get_title(self):
- """Get the title
- :return: None if not found"""
- if "title" in self.D:
- return self.D["title"]
- else:
- return None
- def get_description(self):
- """Get description
- :return: None if not found"""
- if "description" in self.D:
- return self.D["description"]
- else:
- return None
- def get_command(self):
- """Get command
- :return: None if not found"""
- if "command" in self.D:
- return self.D["command"]
- else:
- return None
- def get_number_of_maps(self):
- """Get the number of registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "number_of_maps" in self.D:
- return self.D["number_of_maps"]
- else:
- return None
- id = property(fget=get_id, fset=set_id)
- title = property(fget=get_title, fset=set_title)
- description = property(fget=get_description, fset=set_description)
- number_of_maps = property(fget=get_number_of_maps)
- def print_info(self):
- """Print information about this class in human readable style"""
- # 0123456789012345678901234567890
- print(" | Number of registered maps:.. " + str(
- self.get_number_of_maps()))
- print(" |")
- print(" | Title:")
- print(" | " + str(self.get_title()))
- print(" | Description:")
- print(" | " + str(self.get_description()))
- print(" | Command history:")
- command = self.get_command()
- if command:
- for token in command.split("\n"):
- print(" | " + str(token))
- def print_history(self):
- """Print history information about this class in human readable
- shell style
- """
- # 0123456789012345678901234567890
- print("# Title:")
- print("# " + str(self.get_title()))
- print("# Description:")
- print("# " + str(self.get_description()))
- print("# Command history:")
- command = self.get_command()
- if command:
- tokens = command.split("\n")
- print_list = []
- for token in tokens:
- token = str(token).rstrip().lstrip()
- if len(token) > 1:
- print_list.append(token)
- count = 0
- for token in print_list:
- count += 1
- if len(token) > 1:
- if token[0] == "#":
- print(token)
- elif count < len(print_list):
- print(token + " \\")
- else:
- print(token)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- print("number_of_maps=" + str(self.get_number_of_maps()))
- ###############################################################################
- class STDSRasterMetadataBase(STDSMetadataBase):
- """This is the space time dataset metadata base
- class for strds and str3ds datasets
- Most of the metadata values are set by SQL scripts in the database when
- new maps are added. Therefor only some set- an many
- get-functions are available.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = STDSRasterMetadataBase(ident="soils@PERMANENT",
- ... title="Soils", description="Soils 1950 - 2010")
- >>> meta.id
- 'soils@PERMANENT'
- >>> meta.title
- 'Soils'
- >>> meta.description
- 'Soils 1950 - 2010'
- >>> meta.number_of_maps
- >>> meta.min_max
- >>> meta.max_max
- >>> meta.min_min
- >>> meta.max_min
- >>> meta.nsres_min
- >>> meta.nsres_max
- >>> meta.ewres_min
- >>> meta.ewres_max
- >>> meta.print_info()
- | North-South resolution min:. None
- | North-South resolution max:. None
- | East-west resolution min:... None
- | East-west resolution max:... None
- | Minimum value min:.......... None
- | Minimum value max:.......... None
- | Maximum value min:.......... None
- | Maximum value max:.......... None
- | Aggregation type:........... None
- | Number of registered maps:.. None
- |
- | Title:
- | Soils
- | Description:
- | Soils 1950 - 2010
- | Command history:
- >>> meta.print_shell_info()
- aggregation_type=None
- number_of_maps=None
- nsres_min=None
- nsres_max=None
- ewres_min=None
- ewres_max=None
- min_min=None
- min_max=None
- max_min=None
- max_max=None
- """
- def __init__(self, table=None, ident=None, title=None, description=None,
- aggregation_type=None):
- STDSMetadataBase.__init__(self, table, ident, title, description)
- # Initialize the dict to select all values from the db
- self.D["min_max"] = None
- self.D["max_max"] = None
- self.D["min_min"] = None
- self.D["max_min"] = None
- self.D["nsres_min"] = None
- self.D["nsres_max"] = None
- self.D["ewres_min"] = None
- self.D["ewres_max"] = None
- self.D["aggregation_type"] = aggregation_type
- def set_aggregation_type(self, aggregation_type):
- """Set the aggregation type of the dataset (mean, min, max, ...)"""
- self.D["aggregation_type"] = aggregation_type
- def get_aggregation_type(self):
- """Get the aggregation type of the dataset (mean, min, max, ...)
- :return: None if not found
- """
- if "aggregation_type" in self.D:
- return self.D["aggregation_type"]
- else:
- return None
- def get_max_min(self):
- """Get the minimal maximum of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "max_min" in self.D:
- return self.D["max_min"]
- else:
- return None
- def get_min_min(self):
- """Get the minimal minimum of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "min_min" in self.D:
- return self.D["min_min"]
- else:
- return None
- def get_max_max(self):
- """Get the maximal maximum of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "max_max" in self.D:
- return self.D["max_max"]
- else:
- return None
- def get_min_max(self):
- """Get the maximal minimum of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "min_max" in self.D:
- return self.D["min_max"]
- else:
- return None
- def get_nsres_min(self):
- """Get the minimal north-south resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "nsres_min" in self.D:
- return self.D["nsres_min"]
- else:
- return None
- def get_nsres_max(self):
- """Get the maximal north-south resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "nsres_max" in self.D:
- return self.D["nsres_max"]
- else:
- return None
- def get_ewres_min(self):
- """Get the minimal east-west resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "ewres_min" in self.D:
- return self.D["ewres_min"]
- else:
- return None
- def get_ewres_max(self):
- """Get the maximal east-west resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "ewres_max" in self.D:
- return self.D["ewres_max"]
- else:
- return None
- nsres_min = property(fget=get_nsres_min)
- nsres_max = property(fget=get_nsres_max)
- ewres_min = property(fget=get_ewres_min)
- ewres_max = property(fget=get_ewres_max)
- min_min = property(fget=get_min_min)
- min_max = property(fget=get_min_max)
- max_min = property(fget=get_max_min)
- max_max = property(fget=get_max_max)
- aggregation_type = property(fset=set_aggregation_type,
- fget=get_aggregation_type)
- def print_info(self):
- """Print information about this class in human readable style"""
- # 0123456789012345678901234567890
- print(" | North-South resolution min:. " + str(self.get_nsres_min()))
- print(" | North-South resolution max:. " + str(self.get_nsres_max()))
- print(" | East-west resolution min:... " + str(self.get_ewres_min()))
- print(" | East-west resolution max:... " + str(self.get_ewres_max()))
- print(" | Minimum value min:.......... " + str(self.get_min_min()))
- print(" | Minimum value max:.......... " + str(self.get_min_max()))
- print(" | Maximum value min:.......... " + str(self.get_max_min()))
- print(" | Maximum value max:.......... " + str(self.get_max_max()))
- print(" | Aggregation type:........... " + str(self.get_aggregation_type()))
- STDSMetadataBase.print_info(self)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- print("aggregation_type=" + str(self.get_aggregation_type()))
- STDSMetadataBase.print_shell_info(self)
- print("nsres_min=" + str(self.get_nsres_min()))
- print("nsres_max=" + str(self.get_nsres_max()))
- print("ewres_min=" + str(self.get_ewres_min()))
- print("ewres_max=" + str(self.get_ewres_max()))
- print("min_min=" + str(self.get_min_min()))
- print("min_max=" + str(self.get_min_max()))
- print("max_min=" + str(self.get_max_min()))
- print("max_max=" + str(self.get_max_max()))
- ###############################################################################
- class STRDSMetadata(STDSRasterMetadataBase):
- """This is the raster metadata class
- This class is the interface to the strds_metadata table in the
- temporal database that stores the metadata of all registered
- space time raster datasets
- Most of the metadata values are set by SQL scripts in the database when
- new raster maps are added. Therefor only some set- an many
- get-functions are available.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = STRDSMetadata(ident="soils@PERMANENT",
- ... title="Soils", description="Soils 1950 - 2010")
- >>> meta.id
- 'soils@PERMANENT'
- >>> meta.title
- 'Soils'
- >>> meta.description
- 'Soils 1950 - 2010'
- >>> meta.number_of_maps
- >>> meta.min_max
- >>> meta.max_max
- >>> meta.min_min
- >>> meta.max_min
- >>> meta.nsres_min
- >>> meta.nsres_max
- >>> meta.ewres_min
- >>> meta.ewres_max
- >>> meta.raster_register
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | Raster register table:...... None
- | North-South resolution min:. None
- | North-South resolution max:. None
- | East-west resolution min:... None
- | East-west resolution max:... None
- | Minimum value min:.......... None
- | Minimum value max:.......... None
- | Maximum value min:.......... None
- | Maximum value max:.......... None
- | Aggregation type:........... None
- | Number of registered maps:.. None
- |
- | Title:
- | Soils
- | Description:
- | Soils 1950 - 2010
- | Command history:
- >>> meta.print_shell_info()
- aggregation_type=None
- number_of_maps=None
- nsres_min=None
- nsres_max=None
- ewres_min=None
- ewres_max=None
- min_min=None
- min_max=None
- max_min=None
- max_max=None
- raster_register=None
- """
- def __init__(self, ident=None, raster_register=None, title=None,
- description=None):
- STDSRasterMetadataBase.__init__(
- self, "strds_metadata", ident, title, description)
- self.set_raster_register(raster_register)
- def set_raster_register(self, raster_register):
- """Set the raster map register table name"""
- self.D["raster_register"] = raster_register
- def get_raster_register(self):
- """Get the raster map register table name
- :return: None if not found"""
- if "raster_register" in self.D:
- return self.D["raster_register"]
- else:
- return None
- raster_register = property(fget=get_raster_register,
- fset=set_raster_register)
- def print_info(self):
- """Print information about this class in human readable style"""
- print(" +-------------------- Metadata information ----------------------------------+")
- # 0123456789012345678901234567890
- print(" | Raster register table:...... " + str(
- self.get_raster_register()))
- STDSRasterMetadataBase.print_info(self)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- STDSRasterMetadataBase.print_shell_info(self)
- print("raster_register=" + str(self.get_raster_register()))
- ###############################################################################
- class STR3DSMetadata(STDSRasterMetadataBase):
- """This is the space time 3D raster metadata class
- This class is the interface to the str3ds_metadata table in the
- temporal database that stores the metadata of all registered
- space time 3D raster datasets
- Most of the metadata values are set by SQL scripts in the database when
- new 3D raster maps are added. Therefor only some set- an many
- get-functions are available.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = STR3DSMetadata(ident="soils@PERMANENT",
- ... title="Soils", description="Soils 1950 - 2010")
- >>> meta.id
- 'soils@PERMANENT'
- >>> meta.title
- 'Soils'
- >>> meta.description
- 'Soils 1950 - 2010'
- >>> meta.number_of_maps
- >>> meta.min_max
- >>> meta.max_max
- >>> meta.min_min
- >>> meta.max_min
- >>> meta.nsres_min
- >>> meta.nsres_max
- >>> meta.ewres_min
- >>> meta.ewres_max
- >>> meta.tbres_min
- >>> meta.tbres_max
- >>> meta.raster3d_register
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | 3D raster register table:... None
- | Top-bottom resolution min:.. None
- | Top-bottom resolution max:.. None
- | North-South resolution min:. None
- | North-South resolution max:. None
- | East-west resolution min:... None
- | East-west resolution max:... None
- | Minimum value min:.......... None
- | Minimum value max:.......... None
- | Maximum value min:.......... None
- | Maximum value max:.......... None
- | Aggregation type:........... None
- | Number of registered maps:.. None
- |
- | Title:
- | Soils
- | Description:
- | Soils 1950 - 2010
- | Command history:
- >>> meta.print_shell_info()
- aggregation_type=None
- number_of_maps=None
- nsres_min=None
- nsres_max=None
- ewres_min=None
- ewres_max=None
- min_min=None
- min_max=None
- max_min=None
- max_max=None
- tbres_min=None
- tbres_max=None
- raster3d_register=None
- """
- def __init__(self, ident=None, raster3d_register=None, title=None,
- description=None):
- STDSRasterMetadataBase.__init__(
- self, "str3ds_metadata", ident, title, description)
- self.set_raster3d_register(raster3d_register)
- self.D["tbres_min"] = None
- self.D["tbres_max"] = None
- def set_raster3d_register(self, raster3d_register):
- """Set the raster map register table name"""
- self.D["raster3d_register"] = raster3d_register
- def get_raster3d_register(self):
- """Get the raster3d map register table name
- :return: None if not found"""
- if "raster3d_register" in self.D:
- return self.D["raster3d_register"]
- else:
- return None
- def get_tbres_min(self):
- """Get the minimal top-bottom resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "tbres_min" in self.D:
- return self.D["tbres_min"]
- else:
- return None
- def get_tbres_max(self):
- """Get the maximal top-bottom resolution of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "tbres_max" in self.D:
- return self.D["tbres_max"]
- else:
- return None
- raster3d_register = property(fget=get_raster3d_register,
- fset=set_raster3d_register)
- tbres_min = property(fget=get_tbres_min)
- tbres_max = property(fget=get_tbres_max)
- def print_info(self):
- """Print information about this class in human readable style"""
- print(" +-------------------- Metadata information ----------------------------------+")
- # 0123456789012345678901234567890
- # 0123456789012345678901234567890
- print(" | 3D raster register table:... " + str(
- self.get_raster3d_register()))
- print(" | Top-bottom resolution min:.. " + str(self.get_ewres_min()))
- print(" | Top-bottom resolution max:.. " + str(self.get_ewres_max()))
- STDSRasterMetadataBase.print_info(self)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- STDSRasterMetadataBase.print_shell_info(self)
- print("tbres_min=" + str(self.get_tbres_min()))
- print("tbres_max=" + str(self.get_tbres_max()))
- print("raster3d_register=" + str(self.get_raster3d_register()))
- ###############################################################################
- class STVDSMetadata(STDSMetadataBase):
- """This is the space time vector dataset metadata class
- This class is the interface to the stvds_metadata table in the
- temporal database that stores the metadata of all registered
- space time vector datasets
- Most of the metadata values are set by SQL scripts in the database when
- new vector maps are added. Therefor only some set- an many get-functions
- are available.
- Usage:
- .. code-block:: python
- >>> init()
- >>> meta = STVDSMetadata(ident="lidars@PERMANENT",
- ... title="LIDARS", description="LIDARS 2008 - 2010")
- >>> meta.id
- 'lidars@PERMANENT'
- >>> meta.title
- 'LIDARS'
- >>> meta.description
- 'LIDARS 2008 - 2010'
- >>> meta.number_of_maps
- >>> meta.number_of_points
- >>> meta.number_of_lines
- >>> meta.number_of_boundaries
- >>> meta.number_of_centroids
- >>> meta.number_of_faces
- >>> meta.number_of_kernels
- >>> meta.number_of_primitives
- >>> meta.number_of_nodes
- >>> meta.number_of_areas
- >>> meta.number_of_islands
- >>> meta.number_of_holes
- >>> meta.number_of_volumes
- >>> meta.print_info()
- +-------------------- Metadata information ----------------------------------+
- | Vector register table:...... None
- | Number of points ........... None
- | Number of lines ............ None
- | Number of boundaries ....... None
- | Number of centroids ........ None
- | Number of faces ............ None
- | Number of kernels .......... None
- | Number of primitives ....... None
- | Number of nodes ............ None
- | Number of areas ............ None
- | Number of islands .......... None
- | Number of holes ............ None
- | Number of volumes .......... None
- | Number of registered maps:.. None
- |
- | Title:
- | LIDARS
- | Description:
- | LIDARS 2008 - 2010
- | Command history:
- >>> meta.print_shell_info()
- number_of_maps=None
- vector_register=None
- points=None
- lines=None
- boundaries=None
- centroids=None
- faces=None
- kernels=None
- primitives=None
- nodes=None
- areas=None
- islands=None
- holes=None
- volumes=None
- """
- def __init__(self, ident=None, vector_register=None, title=None,
- description=None):
- STDSMetadataBase.__init__(
- self, "stvds_metadata", ident, title, description)
- self.set_vector_register(vector_register)
- self.D["points"] = None
- self.D["lines"] = None
- self.D["boundaries"] = None
- self.D["centroids"] = None
- self.D["faces"] = None
- self.D["kernels"] = None
- self.D["primitives"] = None
- self.D["nodes"] = None
- self.D["areas"] = None
- self.D["islands"] = None
- self.D["holes"] = None
- self.D["volumes"] = None
- def set_vector_register(self, vector_register):
- """Set the vector map register table name"""
- self.D["vector_register"] = vector_register
- def get_vector_register(self):
- """Get the vector map register table name
- :return: None if not found"""
- if "vector_register" in self.D:
- return self.D["vector_register"]
- else:
- return None
- def get_number_of_points(self):
- """Get the number of points of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "points" in self.D:
- return self.D["points"]
- else:
- return None
- def get_number_of_lines(self):
- """Get the number of lines of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "lines" in self.D:
- return self.D["lines"]
- else:
- return None
- def get_number_of_boundaries(self):
- """Get the number of boundaries of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "boundaries" in self.D:
- return self.D["boundaries"]
- else:
- return None
- def get_number_of_centroids(self):
- """Get the number of centroids of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "centroids" in self.D:
- return self.D["centroids"]
- else:
- return None
- def get_number_of_faces(self):
- """Get the number of faces of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "faces" in self.D:
- return self.D["faces"]
- else:
- return None
- def get_number_of_kernels(self):
- """Get the number of kernels of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "kernels" in self.D:
- return self.D["kernels"]
- else:
- return None
- def get_number_of_primitives(self):
- """Get the number of primitives of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "primitives" in self.D:
- return self.D["primitives"]
- else:
- return None
- def get_number_of_nodes(self):
- """Get the number of nodes of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "nodes" in self.D:
- return self.D["nodes"]
- else:
- return None
- def get_number_of_areas(self):
- """Get the number of areas of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "areas" in self.D:
- return self.D["areas"]
- else:
- return None
- def get_number_of_islands(self):
- """Get the number of islands of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "islands" in self.D:
- return self.D["islands"]
- else:
- return None
- def get_number_of_holes(self):
- """Get the number of holes of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "holes" in self.D:
- return self.D["holes"]
- else:
- return None
- def get_number_of_volumes(self):
- """Get the number of volumes of all registered maps,
- this value is set in the database
- automatically via SQL, so no setter exists
- :return: None if not found"""
- if "volumes" in self.D:
- return self.D["volumes"]
- else:
- return None
- # Set the properties
- vector_register = property(fget=get_vector_register,
- fset=set_vector_register)
- number_of_points = property(fget=get_number_of_points)
- number_of_lines = property(fget=get_number_of_lines)
- number_of_boundaries = property(fget=get_number_of_boundaries)
- number_of_centroids = property(fget=get_number_of_centroids)
- number_of_faces = property(fget=get_number_of_faces)
- number_of_kernels = property(fget=get_number_of_kernels)
- number_of_primitives = property(fget=get_number_of_primitives)
- number_of_nodes = property(fget=get_number_of_nodes)
- number_of_areas = property(fget=get_number_of_areas)
- number_of_islands = property(fget=get_number_of_islands)
- number_of_holes = property(fget=get_number_of_holes)
- number_of_volumes = property(fget=get_number_of_volumes)
- def print_info(self):
- """Print information about this class in human readable style"""
- print(" +-------------------- Metadata information ----------------------------------+")
- # 0123456789012345678901234567890
- print(" | Vector register table:...... " + str(
- self.get_vector_register()))
- print(" | Number of points ........... " + str(self.number_of_points))
- print(" | Number of lines ............ " + str(self.number_of_lines))
- print(" | Number of boundaries ....... " + str(self.number_of_boundaries))
- print(" | Number of centroids ........ " + str(self.number_of_centroids))
- print(" | Number of faces ............ " + str(self.number_of_faces))
- print(" | Number of kernels .......... " + str(self.number_of_kernels))
- print(" | Number of primitives ....... " + str(self.number_of_primitives))
- print(" | Number of nodes ............ " + str(self.number_of_nodes))
- print(" | Number of areas ............ " + str(self.number_of_areas))
- print(" | Number of islands .......... " + str(self.number_of_islands))
- print(" | Number of holes ............ " + str(self.number_of_holes))
- print(" | Number of volumes .......... " + str(self.number_of_volumes))
- STDSMetadataBase.print_info(self)
- def print_shell_info(self):
- """Print information about this class in shell style"""
- STDSMetadataBase.print_shell_info(self)
- print("vector_register=" + str(self.get_vector_register()))
- print("points=" + str(self.get_number_of_points()))
- print("lines=" + str(self.get_number_of_lines()))
- print("boundaries=" + str(self.get_number_of_boundaries()))
- print("centroids=" + str(self.get_number_of_centroids()))
- print("faces=" + str(self.get_number_of_faces()))
- print("kernels=" + str(self.get_number_of_kernels()))
- print("primitives=" + str(self.get_number_of_primitives()))
- print("nodes=" + str(self.get_number_of_nodes()))
- print("areas=" + str(self.get_number_of_areas()))
- print("islands=" + str(self.get_number_of_islands()))
- print("holes=" + str(self.get_number_of_holes()))
- print("volumes=" + str(self.get_number_of_volumes()))
- ###############################################################################
- if __name__ == "__main__":
- import doctest
- doctest.testmod()
|