Exemple #1
0
    def test_temporal_extent1(self):
        """Testing the temporal extent operators. """
        ta = tgis.TemporalVectorAlgebraParser(run = True, debug = True)
        ta.parse(expression="R = A {:,during,r} C", basename="r", overwrite=True)

        D = tgis.open_old_stds("R", type="stvds")
        self.assertTrue(D.is_in_db())
        D.select()
        D.print_info()
        maplist = D.get_registered_maps_as_objects()
        self.assertEqual(D.metadata.get_number_of_maps(), 2)
        start, end = D.get_absolute_time()
        self.assertEqual(start, datetime.datetime(2001, 1, 2))
        self.assertEqual(end, datetime.datetime(2001, 1, 4))
        self.assertEqual(D.check_temporal_topology(), False)
        self.assertEqual(D.get_granularity(), u'2 days')
Exemple #2
0
    def test_temporal_buff_operators_1(self):
        """Testing the bufferoperator."""
        tva = tgis.TemporalVectorAlgebraParser(run=True, debug=True)
        tva.parse(expression="R = buff_p(A,0.5)", basename="r", overwrite=True)

        D = tgis.open_old_stds("R", type="stvds")
        D.select()
        self.assertEqual(D.metadata.get_number_of_maps(), 4)
        self.assertEqual(D.metadata.get_number_of_points(), 0)
        self.assertEqual(D.metadata.get_number_of_areas(), 80)
        self.assertEqual(D.metadata.get_number_of_centroids(), 80)
        start, end = D.get_absolute_time()
        self.assertEqual(start, datetime.datetime(2001, 1, 1))
        self.assertEqual(end, datetime.datetime(2001, 1, 5))
        self.assertEqual(D.check_temporal_topology(), True)
        self.assertEqual(D.get_granularity(), u'1 day')
Exemple #3
0
    def test_temporal_overlay_operators_3(self):
        """Testing the spatial overlay operator."""
        tva = tgis.TemporalVectorAlgebraParser(run = True, debug = True)
        tva.parse(expression="R = buff_p(A,2.5) {&,during,l} buff_p(C,2.5)", basename="r", overwrite=True)

        D = tgis.open_old_stds("R", type="stvds")
        self.assertTrue(D.is_in_db())
        D.select()
        self.assertEqual(D.metadata.get_number_of_maps(), 2)
        self.assertEqual(D.metadata.get_number_of_points(), 0)
        self.assertEqual(D.metadata.get_number_of_areas(), 8)
        self.assertEqual(D.metadata.get_number_of_centroids(), 8)
        start, end = D.get_absolute_time()
        self.assertEqual(start, datetime.datetime(2001, 1, 2))
        self.assertEqual(end, datetime.datetime(2001, 1, 4))
        self.assertEqual(D.check_temporal_topology(), True)
        self.assertEqual(D.get_granularity(), u'1 day')
Exemple #4
0
    def test_temporal_select_operators(self):
        """Testing the temporal select operator. Including temporal relations. """
        tva = tgis.TemporalVectorAlgebraParser(run = True, debug = True)
        tva.parse(expression="R = A {:,during} C", basename="r", overwrite=True)

        D = tgis.open_old_stds("R", type="stvds")
        self.assertTrue(D.is_in_db())
        D.select()
        self.assertEqual(D.metadata.get_number_of_maps(), 2)
        self.assertEqual(D.metadata.get_number_of_points(), 40)
        self.assertEqual(D.metadata.get_number_of_areas(), 0)
        self.assertEqual(D.metadata.get_number_of_centroids(), 0)
        start, end = D.get_absolute_time()
        self.assertEqual(start, datetime.datetime(2001, 1, 2))
        self.assertEqual(end, datetime.datetime(2001, 1, 4))
        self.assertEqual(D.check_temporal_topology(), True)
        self.assertEqual(D.get_granularity(), u'1 day')
Exemple #5
0
def main():
    # lazy imports
    import grass.temporal as tgis

    expression = options['expression']
    basename = options['basename']
    spatial = flags["s"]
    stdstype = "stvds"

    # Check for PLY istallation
    try:
        import ply.lex as lex
        import ply.yacc as yacc
    except:
        grass.script.fatal(_("Please install PLY (Lex and Yacc Python implementation) to use the temporal algebra modules."))

    tgis.init(True)
    p = tgis.TemporalVectorAlgebraParser(run = True, debug=False, spatial = spatial)
    p.parse(expression, basename, grass.script.overwrite())