def ogr_csv_19(): if gdaltest.csv_ds is None: return 'skip' gdaltest.csv_ds.Destroy() gdaltest.csv_ds = None gdaltest.csv_ds = ogr.Open( 'data/testnull.csv' ) if gdaltest.csv_ds is None: return 'fail' lyr = gdaltest.csv_ds.GetLayerByName( 'testnull' ) lyr.ResetReading() if not ogrtest.check_features_against_list( lyr,'INTCOL',[12] ): return 'fail' lyr.ResetReading() if not ogrtest.check_features_against_list( lyr,'REALCOL',[5.7] ): return 'fail' lyr.ResetReading() if not ogrtest.check_features_against_list( lyr,'INTCOL2',[None] ): return 'fail' lyr.ResetReading() if not ogrtest.check_features_against_list( lyr,'REALCOL2',[None] ): return 'fail' lyr.ResetReading() if not ogrtest.check_features_against_list( lyr,'STRINGCOL',['foo']): return 'fail' return 'success'
def ogr_csv_9(): if gdaltest.csv_ds is None: return 'skip' gdaltest.csv_tmpds = ogr.Open( 'tmp/csvwrk', update=1 ) lyr = gdaltest.csv_tmpds.GetLayer(0) expect = [ '8901', '8902', '8903', '8904', '7000' ] tr = ogrtest.check_features_against_list( lyr,'PRIME_MERIDIAN_CODE',expect) if not tr: return 'fail' lyr.ResetReading() expect = [ '', 'Instituto Geografico e Cadastral; Lisbon', 'Institut Geographique National (IGN), Paris', 'Instituto Geografico "Augustin Cadazzi" (IGAC); Bogota', 'This is a newline test\n' ] tr = ogrtest.check_features_against_list( lyr,'INFORMATION_SOURCE',expect) if not tr: return 'fail' lyr.ResetReading() return 'success'
def ogr_rfc28_12(): lyr = gdaltest.ds.ExecuteSQL( "SELECT 'constant string', 'other' as abc, eas_id from idlink where eas_id = 165" ) count = lyr.GetFeatureCount() if count != 1: gdaltest.post_reason( 'Got wrong count with GetFeatureCount() - %d, expecting 1' % count ) return 'fail' expect = [ 'other' ] tr = ogrtest.check_features_against_list( lyr, 'abc', expect ) expect = [ 165 ] if tr: lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'eas_id', expect ) expect = [ 'constant string' ] if tr: lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'field_1', expect ) gdaltest.ds.ReleaseResultSet( lyr ) if tr: return 'success' else: return 'fail'
def ogr_rfc28_12(): lyr = gdaltest.ds.ExecuteSQL("SELECT 'constant string', 'other' as abc, eas_id from idlink where eas_id = 165") count = lyr.GetFeatureCount() if count != 1: gdaltest.post_reason("Got wrong count with GetFeatureCount() - %d, expecting 1" % count) return "fail" expect = ["other"] tr = ogrtest.check_features_against_list(lyr, "abc", expect) expect = [165] if tr: lyr.ResetReading() tr = ogrtest.check_features_against_list(lyr, "eas_id", expect) expect = ["constant string"] if tr: lyr.ResetReading() tr = ogrtest.check_features_against_list(lyr, "field_1", expect) gdaltest.ds.ReleaseResultSet(lyr) if tr: return "success" else: return "fail"
def ogr_rfc28_16(): lyr = gdaltest.ds.ExecuteSQL( "SELECT -1, 3--1,3*-1,2e-1,3-1 from poly where eas_id = 168" ) expect = [ -1 ] tr = ogrtest.check_features_against_list( lyr, 'field_1', expect ) expect = [ 4 ] lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'field_2', expect ) expect = [ -3 ] lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'field_3', expect ) expect = [ 0.2 ] lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'field_4', expect ) expect = [ 2 ] lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'field_5', expect ) gdaltest.ds.ReleaseResultSet( lyr ) if tr: return 'success' else: return 'fail'
def ogr_rfc28_40(): ds = ogr.GetDriverByName('Memory').CreateDataSource('') lyr = ds.CreateLayer('test') lyr.CreateField(ogr.FieldDefn('DATE', ogr.OFTDateTime)) feat = ogr.Feature(lyr.GetLayerDefn()) feat.SetField(0, '2013/12/31 23:59:59') lyr.CreateFeature(feat) feat = ogr.Feature(lyr.GetLayerDefn()) feat.SetField(0, '2013/01/01 00:00:00') lyr.CreateFeature(feat) lyr = ds.ExecuteSQL( "SELECT MIN(DATE), MAX(DATE), AVG(DATE) from test" ) tr = ogrtest.check_features_against_list( lyr, 'MIN_DATE', ['2013/01/01 00:00:00'] ) lyr.ResetReading() tr2 = ogrtest.check_features_against_list( lyr, 'MAX_DATE', ['2013/12/31 23:59:59'] ) lyr.ResetReading() tr3 = ogrtest.check_features_against_list( lyr, 'AVG_DATE', ['2013/07/02 11:59:59.500'] ) gdaltest.ds.ReleaseResultSet( lyr ) if not tr: return 'fail' if not tr2: return 'fail' if not tr3: return 'fail' return 'success'
def test_ogr_rfc28_18(): lyr = gdaltest.ds.ExecuteSQL("SELECT COUNT(distinct id), COUNT(distinct id) as \"xx\" from departs") expect = [1] tr = ogrtest.check_features_against_list(lyr, 'COUNT_id', expect) expect = [1] lyr.ResetReading() tr = ogrtest.check_features_against_list(lyr, 'xx', expect) gdaltest.ds.ReleaseResultSet(lyr) assert tr
def test_ogr_gxt_2(): gdaltest.gxt_ds = ogr.Open('data/expected_000_GRD_TAB.txt') assert gdaltest.gxt_ds is not None assert gdaltest.gxt_ds.GetLayerCount() == 1, 'Got wrong layer count.' lyr = gdaltest.gxt_ds.GetLayer(0) assert lyr.GetName() == '000_GRD.000_GRD', 'got unexpected layer name.' assert lyr.GetFeatureCount() == 5, 'got wrong feature count.' expect = ['000-2007-0050-7130-LAMB93', '000-2007-0595-7130-LAMB93', '000-2007-0595-6585-LAMB93', '000-2007-1145-6250-LAMB93', '000-2007-0050-6585-LAMB93'] tr = ogrtest.check_features_against_list(lyr, 'idSel', expect) assert tr lyr.ResetReading() feat = lyr.GetNextFeature() assert (ogrtest.check_feature_geometry(feat, 'MULTIPOLYGON (((50000 7130000,600000 7130000,600000 6580000,50000 6580000,50000 7130000)))', max_error=0.000000001) == 0)
def test_ogr_dods_3(): if gdaltest.dods_ds is None: pytest.skip() gdaltest.dods_normalized.ResetReading() expect = [0, 10, 20, 30, 39] tr = ogrtest.check_features_against_list(gdaltest.dods_normalized, 'depth', expect) assert tr != 0 expected = [14.8100004196167, 14.8100004196167, 14.8100004196167, 14.60999965667725, 14.60999965667725] gdaltest.dods_normalized.ResetReading() for i in range(5): feat = gdaltest.dods_normalized.GetNextFeature() assert feat.GetField('time') == -1936483200000, 'time wrong' assert abs(feat.GetField('T_20') - expected[i]) <= 0.001, 'T_20 wrong' assert ogrtest.check_feature_geometry(feat, 'POINT (4.30000019 5.36999989)') == 0 feat.Destroy() feat = None feat = gdaltest.dods_normalized.GetNextFeature() if feat is not None: feat.Destroy() pytest.fail('got more than expected number of features.')
def ogr_vrt_4(): if gdaltest.vrt_ds is None: return 'skip' lyr = gdaltest.vrt_ds.GetLayerByName( 'test3' ) lyr.ResetReading() lyr.SetSpatialFilterRect( 90, 90, 300, 300 ) expect = ['Second'] tr = ogrtest.check_features_against_list( lyr, 'other', expect ) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry(feat,'POINT(100 200)', max_error = 0.000000001 ) != 0: return 'fail' feat.Destroy() lyr.SetSpatialFilter( None ) return 'success'
def test_ogr_mysql_7(): if gdaltest.mysql_ds is None: pytest.skip() gdaltest.mysql_lyr.SetAttributeFilter(None) geom = ogr.CreateGeometryFromWkt( 'LINESTRING(479505 4763195,480526 4762819)') gdaltest.mysql_lyr.SetSpatialFilter(geom) geom.Destroy() assert gdaltest.mysql_lyr.GetFeatureCount() == 1 tr = ogrtest.check_features_against_list(gdaltest.mysql_lyr, 'eas_id', [158]) gdaltest.mysql_lyr.SetAttributeFilter('eas_id = 158') assert gdaltest.mysql_lyr.GetFeatureCount() == 1 gdaltest.mysql_lyr.SetAttributeFilter(None) gdaltest.mysql_lyr.SetSpatialFilter(None) assert tr
def ogr_mysql_7(): if gdaltest.mysql_ds is None: return "skip" gdaltest.mysql_lyr.SetAttributeFilter(None) geom = ogr.CreateGeometryFromWkt("LINESTRING(479505 4763195,480526 4762819)") gdaltest.mysql_lyr.SetSpatialFilter(geom) geom.Destroy() if gdaltest.mysql_lyr.GetFeatureCount() != 1: gdaltest.post_reason("GetFeatureCount() returned %d instead of 1" % gdaltest.mysql_lyr.GetFeatureCount()) return "fail" tr = ogrtest.check_features_against_list(gdaltest.mysql_lyr, "eas_id", [158]) gdaltest.mysql_lyr.SetAttributeFilter("eas_id = 158") if gdaltest.mysql_lyr.GetFeatureCount() != 1: gdaltest.post_reason("GetFeatureCount() returned %d instead of 1" % gdaltest.mysql_lyr.GetFeatureCount()) return "fail" gdaltest.mysql_lyr.SetAttributeFilter(None) gdaltest.mysql_lyr.SetSpatialFilter(None) if tr: return "success" else: return "fail"
def ogr_mysql_7(): if gdaltest.mysql_ds is None: return 'skip' gdaltest.mysql_lyr.SetAttributeFilter( None ) geom = ogr.CreateGeometryFromWkt( \ 'LINESTRING(479505 4763195,480526 4762819)' ) gdaltest.mysql_lyr.SetSpatialFilter( geom ) geom.Destroy() if gdaltest.mysql_lyr.GetFeatureCount() != 1: gdaltest.post_reason( 'GetFeatureCount() returned %d instead of 1' % gdaltest.mysql_lyr.GetFeatureCount() ) return 'fail' tr = ogrtest.check_features_against_list( gdaltest.mysql_lyr, 'eas_id', [ 158 ] ) gdaltest.mysql_lyr.SetAttributeFilter( 'eas_id = 158' ) if gdaltest.mysql_lyr.GetFeatureCount() != 1: gdaltest.post_reason( 'GetFeatureCount() returned %d instead of 1' % gdaltest.mysql_lyr.GetFeatureCount() ) return 'fail' gdaltest.mysql_lyr.SetAttributeFilter( None ) gdaltest.mysql_lyr.SetSpatialFilter( None ) if tr: return 'success' else: return 'fail'
def ogr_bna_3(): gdaltest.bna_ds = ogr.Open( 'data/test.bna' ) lyr = gdaltest.bna_ds.GetLayerByName( 'test_polygons' ) expect = ['PID2', 'PID1', 'PID7', 'PID8'] tr = ogrtest.check_features_against_list( lyr, 'Primary ID', expect ) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() feat.Destroy() feat = lyr.GetNextFeature() feat.Destroy() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat, 'MULTIPOLYGON (((0 0,1 0,1 1,0 1,0 0)))', max_error = 0.0001 ) != 0: return 'fail' feat.Destroy() feat = lyr.GetFeature(2) if ogrtest.check_feature_geometry( feat, 'MULTIPOLYGON (((0 0,1 0,1 1,0 1,0 0)))', max_error = 0.0001 ) != 0: return 'fail' feat.Destroy() feat = lyr.GetFeature(3) if ogrtest.check_feature_geometry( feat, 'POLYGON ((0 0,0 10,10 10,10 0,0 0),(2 2,2 8,8 8,8 2,2 2))', max_error = 0.0001 ) != 0: return 'fail' feat.Destroy() return 'success'
def test_ogr_mem_8(): #################################################################### # Add new string field. field_defn = ogr.FieldDefn('new_string', ogr.OFTString) gdaltest.mem_lyr.CreateField(field_defn) #################################################################### # Apply a value to this field in one feature. gdaltest.mem_lyr.SetAttributeFilter("PRFEDEA = '2'") feat_read = gdaltest.mem_lyr.GetNextFeature() feat_read.SetField('new_string', 'test1') gdaltest.mem_lyr.SetFeature(feat_read) # Test expected failed case of SetFeature() new_feat = ogr.Feature(gdaltest.mem_lyr.GetLayerDefn()) new_feat.SetFID(-2) gdal.PushErrorHandler('CPLQuietErrorHandler') ret = gdaltest.mem_lyr.SetFeature(new_feat) gdal.PopErrorHandler() assert ret != 0 new_feat = None #################################################################### # Now fetch two features and verify the new column works OK. gdaltest.mem_lyr.SetAttributeFilter("PRFEDEA IN ( '2', '1' )") tr = ogrtest.check_features_against_list(gdaltest.mem_lyr, 'new_string', ['test1', None]) gdaltest.mem_lyr.SetAttributeFilter(None) assert tr
def ogr_ingres_3(): if gdaltest.ingres_ds is None: return 'skip' expect = [168, 169, 166, 158, 165] gdaltest.ingres_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.ingres_lyr, 'eas_id', expect) gdaltest.ingres_lyr.SetAttributeFilter(None) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.ingres_lyr.GetNextFeature() if ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.000000001) != 0: return 'fail' for fld in range(3): if orig_feat.GetField(fld) != read_feat.GetField(fld): gdaltest.post_reason('Attribute %d does not match' % fld) return 'fail' gdaltest.poly_feat = None gdaltest.shp_ds.Destroy() # This is to force cleanup of the transaction. We need a way of # automating this in the driver. read_feat = gdaltest.ingres_lyr.GetNextFeature() return 'success' if tr else 'fail'
def ogr_rfc28_18(): lyr = gdaltest.ds.ExecuteSQL( "SELECT COUNT(distinct id), COUNT(distinct id) as 'xx' from departs" ) expect = [ 1 ] tr = ogrtest.check_features_against_list( lyr, 'COUNT_id', expect ) expect = [ 1 ] lyr.ResetReading() tr = ogrtest.check_features_against_list( lyr, 'xx', expect ) gdaltest.ds.ReleaseResultSet( lyr ) if tr: return 'success' else: return 'fail'
def ogr_vrt_5(): lyr = gdaltest.vrt_ds.GetLayerByName( 'test3' ) lyr.ResetReading() lyr.SetAttributeFilter( 'x < 50' ) expect = ['First'] tr = ogrtest.check_features_against_list( lyr, 'other', expect ) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry(feat,'POINT(12.5 17 1.2)', max_error = 0.000000001 ) != 0: return 'fail' feat.Destroy() lyr.SetAttributeFilter( None ) return 'success'
def ogr_mysql_6(): if gdaltest.mysql_ds is None: return 'skip' sql_lyr = gdaltest.mysql_ds.ExecuteSQL( "select * from tpoly where prfedea = '2'" ) tr = ogrtest.check_features_against_list( sql_lyr, 'prfedea', [ '2' ] ) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat_read, 'MULTILINESTRING ((5.00121349 2.99853132,5.00121349 1.99853133),(5.00121349 1.99853133,5.00121349 0.99853133),(3.00121351 1.99853127,5.00121349 1.99853133),(5.00121349 1.99853133,6.00121348 1.99853135))' ) != 0: tr = 0 feat_read.Destroy() sql_lyr.ResetReading() geom = ogr.CreateGeometryFromWkt( \ 'LINESTRING(-10 -10,0 0)' ) sql_lyr.SetSpatialFilter( geom ) geom.Destroy() if sql_lyr.GetFeatureCount() != 0: gdaltest.post_reason( 'GetFeatureCount() returned %d instead of 0' % sql_lyr.GetFeatureCount() ) return 'fail' if sql_lyr.GetNextFeature() != None: gdaltest.post_reason( 'GetNextFeature() didn not return None' ) return 'fail' gdaltest.mysql_ds.ReleaseResultSet( sql_lyr ) if tr: return 'success' else: return 'fail'
def ogr_spatialite_3(): if gdaltest.has_spatialite == False: return 'skip' ds = ogr.Open( 'tmp/spatialite_test.db' ) ds.ExecuteSQL( 'CREATE VIRTUAL TABLE testpoly USING VirtualShape(data/testpoly, CP1252, -1)') ds.Destroy() ds = ogr.Open( 'tmp/spatialite_test.db' ) lyr = ds.GetLayerByName('testpoly') if lyr is None: return 'fail' lyr.SetSpatialFilterRect( -400, 22, -120, 400 ) tr = ogrtest.check_features_against_list( lyr, 'FID', [ 0, 4, 8 ] ) ds.Destroy() if tr: return 'success' else: return 'fail'
def ogr_ingres_5(): if gdaltest.ingres_ds is None: return 'skip' return 'skip' sql_lyr = gdaltest.ingres_ds.ExecuteSQL( \ "select * from tpoly where prfedea = '35043413'" ) tr = ogrtest.check_features_against_list( sql_lyr, 'prfedea', [ '35043413' ] ) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat_read, 'POLYGON ((479750.6875 4764702.0,479658.59375 4764670.0,479640.09375 4764721.0,479735.90625 4764752.0,479750.6875 4764702.0))' ) != 0: tr = 0 feat_read.Destroy() gdaltest.ingres_ds.ReleaseResultSet( sql_lyr ) if tr: return 'success' else: return 'fail'
def ogr_mem_6(): if gdaltest.mem_ds is None: return "skip" sql_lyr = gdaltest.mem_ds.ExecuteSQL("select * from tpoly where prfedea = '2'") tr = ogrtest.check_features_against_list(sql_lyr, "prfedea", ["2"]) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ( ogrtest.check_feature_geometry( feat_read, "MULTILINESTRING ((5.00121349 2.99853132,5.00121349 1.99853133),(5.00121349 1.99853133,5.00121349 0.99853133),(3.00121351 1.99853127,5.00121349 1.99853133),(5.00121349 1.99853133,6.00121348 1.99853135))", ) != 0 ): tr = 0 gdaltest.mem_ds.ReleaseResultSet(sql_lyr) if tr: return "success" else: return "fail"
def polygonize_2(): src_ds = gdal.Open('data/polygonize_in.grd') src_band = src_ds.GetRasterBand(1) # Create a memory OGR datasource to put results in. mem_drv = ogr.GetDriverByName('Memory') mem_ds = mem_drv.CreateDataSource('out') mem_layer = mem_ds.CreateLayer('poly', None, ogr.wkbPolygon) fd = ogr.FieldDefn('DN', ogr.OFTInteger) mem_layer.CreateField(fd) # run the algorithm. result = gdal.Polygonize(src_band, None, mem_layer, 0) if result != 0: gdaltest.post_reason('Polygonize failed') return 'fail' # Confirm we get the set of expected features in the output layer. expected_feature_number = 17 if mem_layer.GetFeatureCount() != expected_feature_number: gdaltest.post_reason('GetFeatureCount() returned %d instead of %d' % (mem_layer.GetFeatureCount(), expected_feature_number)) return 'fail' expect = [107, 123, 115, 132, 115, 132, 140, 132, 148, 123, 140, 132, 156, 100, 101, 102, 103] tr = ogrtest.check_features_against_list(mem_layer, 'DN', expect) return 'success' if tr else 'fail'
def test_ogr_mysql_6(): if gdaltest.mysql_ds is None: pytest.skip() sql_lyr = gdaltest.mysql_ds.ExecuteSQL("select * from tpoly where prfedea = '2'") tr = ogrtest.check_features_against_list(sql_lyr, 'prfedea', ['2']) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry(feat_read, 'MULTILINESTRING ((5.00121349 2.99853132,5.00121349 1.99853133),(5.00121349 1.99853133,5.00121349 0.99853133),(3.00121351 1.99853127,5.00121349 1.99853133),(5.00121349 1.99853133,6.00121348 1.99853135))') != 0: tr = 0 feat_read.Destroy() sql_lyr.ResetReading() geom = ogr.CreateGeometryFromWkt( 'LINESTRING(-10 -10,0 0)') sql_lyr.SetSpatialFilter(geom) geom.Destroy() assert sql_lyr.GetFeatureCount() == 0 assert sql_lyr.GetNextFeature() is None, 'GetNextFeature() did not return None' gdaltest.mysql_ds.ReleaseResultSet(sql_lyr) assert tr
def test_ogr_mem_3(): if gdaltest.mem_ds is None: pytest.skip() expect = [168, 169, 166, 158, 165] gdaltest.mem_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.mem_lyr, 'eas_id', expect) gdaltest.mem_lyr.SetAttributeFilter(None) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.mem_lyr.GetNextFeature() assert (ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.000000001) == 0) for fld in range(3): assert orig_feat.GetField(fld) == read_feat.GetField(fld), \ ('Attribute %d does not match' % fld) gdaltest.poly_feat = None gdaltest.shp_ds = None assert tr
def ogr_mem_3(): if gdaltest.mem_ds is None: return 'skip' expect = [168, 169, 166, 158, 165] gdaltest.mem_lyr.SetAttributeFilter( 'eas_id < 170' ) tr = ogrtest.check_features_against_list( gdaltest.mem_lyr, 'eas_id', expect ) gdaltest.mem_lyr.SetAttributeFilter( None ) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.mem_lyr.GetNextFeature() if ogrtest.check_feature_geometry(read_feat,orig_feat.GetGeometryRef(), max_error = 0.000000001 ) != 0: return 'fail' for fld in range(3): if orig_feat.GetField(fld) != read_feat.GetField(fld): gdaltest.post_reason( 'Attribute %d does not match' % fld ) return 'fail' gdaltest.poly_feat = None gdaltest.shp_ds = None if tr: return 'success' else: return 'fail'
def ogr_mem_8(): #################################################################### # Add new string field. field_defn = ogr.FieldDefn( 'new_string', ogr.OFTString ) gdaltest.mem_lyr.CreateField( field_defn ) field_defn.Destroy() #################################################################### # Apply a value to this field in one feature. gdaltest.mem_lyr.SetAttributeFilter( "PRFEDEA = '2'" ) feat_read = gdaltest.mem_lyr.GetNextFeature() feat_read.SetField( 'new_string', 'test1' ) gdaltest.mem_lyr.SetFeature( feat_read ) feat_read.Destroy() #################################################################### # Now featch two features and verify the new column works OK. gdaltest.mem_lyr.SetAttributeFilter( "PRFEDEA IN ( '2', '1' )" ) tr = ogrtest.check_features_against_list( gdaltest.mem_lyr, 'new_string', [ 'test1', None ] ) gdaltest.mem_lyr.SetAttributeFilter( None ) if tr: return 'success' else: return 'fail'
def ogr_mem_7(): if gdaltest.mem_ds is None: return 'skip' gdaltest.mem_lyr.SetAttributeFilter( None ) geom = ogr.CreateGeometryFromWkt( \ 'LINESTRING(479505 4763195,480526 4762819)' ) gdaltest.mem_lyr.SetSpatialFilter( geom ) geom.Destroy() if gdaltest.mem_lyr.TestCapability( ogr.OLCFastSpatialFilter ): gdaltest.post_reason( 'OLCFastSpatialFilter capability test should have failed.' ) return 'fail' tr = ogrtest.check_features_against_list( gdaltest.mem_lyr, 'eas_id', [ 158 ] ) gdaltest.mem_lyr.SetSpatialFilter( None ) if tr: return 'success' else: return 'fail'
def test_polygonize_2(): src_ds = gdal.Open('data/polygonize_in.grd') src_band = src_ds.GetRasterBand(1) # Create a memory OGR datasource to put results in. mem_drv = ogr.GetDriverByName('Memory') mem_ds = mem_drv.CreateDataSource('out') mem_layer = mem_ds.CreateLayer('poly', None, ogr.wkbPolygon) fd = ogr.FieldDefn('DN', ogr.OFTInteger) mem_layer.CreateField(fd) # run the algorithm. result = gdal.Polygonize(src_band, None, mem_layer, 0) assert result == 0, 'Polygonize failed' # Confirm we get the set of expected features in the output layer. expected_feature_number = 17 assert mem_layer.GetFeatureCount() == expected_feature_number expect = [107, 123, 115, 132, 115, 132, 140, 132, 148, 123, 140, 132, 156, 100, 101, 102, 103] tr = ogrtest.check_features_against_list(mem_layer, 'DN', expect) assert tr
def test_gdal_polygonize_2(): script_path = test_py_scripts.get_py_script('gdal_polygonize') if script_path is None: pytest.skip() shp_drv = ogr.GetDriverByName('ESRI Shapefile') try: os.stat('tmp/out.shp') shp_drv.DeleteDataSource('tmp/out.shp') except OSError: pass # run the algorithm. test_py_scripts.run_py_script(script_path, 'gdal_polygonize', '-b 1 -f "ESRI Shapefile" -q -nomask ../alg/data/polygonize_in.grd tmp') # Confirm we get the set of expected features in the output layer. shp_ds = ogr.Open('tmp') shp_lyr = shp_ds.GetLayerByName('out') expected_feature_number = 17 assert shp_lyr.GetFeatureCount() == expected_feature_number expect = [107, 123, 115, 132, 115, 132, 140, 132, 148, 123, 140, 132, 156, 100, 101, 102, 103] tr = ogrtest.check_features_against_list(shp_lyr, 'DN', expect) shp_ds.Destroy() # Reload drv because of side effects of run_py_script() shp_drv = ogr.GetDriverByName('ESRI Shapefile') shp_drv.DeleteDataSource('tmp/out.shp') assert tr
def ogr_mysql_15(): if gdaltest.mysql_ds is None: return 'skip' expect = [169] query = 'eas_id = 169' for id in range(1000): query = query + (' or eas_id = %d' % (id+1000)) gdaltest.mysql_lyr.SetAttributeFilter( query ) tr = ogrtest.check_features_against_list( gdaltest.mysql_lyr, 'eas_id', expect ) gdaltest.mysql_lyr.SetAttributeFilter( None ) if tr: return 'success' else: return 'fail'
def ogr_ingres_6(): if gdaltest.ingres_ds is None: return 'skip' gdaltest.ingres_lyr.SetAttributeFilter(None) geom = ogr.CreateGeometryFromWkt( \ 'LINESTRING(479505 4763195,480526 4762819)' ) gdaltest.ingres_lyr.SetSpatialFilter(geom) geom.Destroy() tr = ogrtest.check_features_against_list(gdaltest.ingres_lyr, 'eas_id', [158]) gdaltest.ingres_lyr.SetSpatialFilter(None) if tr: return 'success' else: return 'fail'
def ogr_rfc28_8_wrong_quoting(): with gdaltest.error_handler(): ql = gdaltest.ds.ExecuteSQL( "select \"idlink.eas_id\" from idlink where \"idlink.eas_id\" = 166" ) count = ql.GetFeatureCount() if count != 1: gdaltest.post_reason( 'Got wrong count with GetFeatureCount() - %d, expecting 1' % count) return 'fail' expect = [166] tr = ogrtest.check_features_against_list(ql, 'idlink.eas_id', expect) gdaltest.ds.ReleaseResultSet(ql) if tr: return 'success' else: return 'fail'
def test_ogr_mem_7(): if gdaltest.mem_ds is None: pytest.skip() gdaltest.mem_lyr.SetAttributeFilter(None) geom = ogr.CreateGeometryFromWkt( 'LINESTRING(479505 4763195,480526 4762819)') gdaltest.mem_lyr.SetSpatialFilter(geom) geom.Destroy() assert not gdaltest.mem_lyr.TestCapability(ogr.OLCFastSpatialFilter), \ 'OLCFastSpatialFilter capability test should have failed.' tr = ogrtest.check_features_against_list(gdaltest.mem_lyr, 'eas_id', [158]) gdaltest.mem_lyr.SetSpatialFilter(None) assert tr
def test_ogr_bna_1(): gdaltest.bna_ds = ogr.Open('data/test.bna') lyr = gdaltest.bna_ds.GetLayerByName('test_points') expect = ['PID5', 'PID4'] tr = ogrtest.check_features_against_list(lyr, 'Primary ID', expect) assert tr lyr.ResetReading() feat = lyr.GetNextFeature() assert (ogrtest.check_feature_geometry(feat, 'POINT (573.736 476.563)', max_error=0.0001) == 0) feat = lyr.GetNextFeature() assert (ogrtest.check_feature_geometry(feat, 'POINT (532.991 429.121)', max_error=0.0001) == 0)
def ogr_dods_5(): if ogrtest.dods_drv is None: return 'skip' srv = 'http://uhslc1.soest.hawaii.edu/cgi-bin/nph-nc/fast/m004.nc.dds' if gdaltest.gdalurlopen(srv) is None: return 'skip' grid_ds = ogr.Open( 'DODS:' + srv ) if grid_ds is None: return 'fail' lat_lyr = grid_ds.GetLayerByName( 'latitude' ) expect = [-0.53166663646698] tr = ogrtest.check_features_against_list( lat_lyr, 'latitude', expect ) if tr == 0: return 'fail' return 'success'
def ogr_oci_5(): if gdaltest.oci_ds is None: return 'skip' expect = [None, 179, 173, 172, 171, 170, 169, 168, 166, 165, 158] sql_lyr = gdaltest.oci_ds.ExecuteSQL( 'select distinct eas_id from tpoly order by eas_id desc') if sql_lyr.GetLayerDefn().GetGeomFieldCount() != 0: gdaltest.post_reason('fail') return 'fail' tr = ogrtest.check_features_against_list(sql_lyr, 'eas_id', expect) gdaltest.oci_ds.ReleaseResultSet(sql_lyr) if tr: return 'success' else: return 'fail'
def test_ogr_mysql_16(): if gdaltest.mysql_ds is None: pytest.skip() expect = [169] query = 'eas_id = 169' for ident in range(1000): query = query + (' or eas_id = %d' % (ident + 1000)) statement = 'select eas_id from tpoly where ' + query lyr = gdaltest.mysql_ds.ExecuteSQL(statement) tr = ogrtest.check_features_against_list(lyr, 'eas_id', expect) gdaltest.mysql_ds.ReleaseResultSet(lyr) assert tr
def ogr_mysql_16(): if gdaltest.mysql_ds is None: return 'skip' expect = [169] query = 'eas_id = 169' for ident in range(1000): query = query + (' or eas_id = %d' % (ident + 1000)) statement = 'select eas_id from tpoly where ' + query lyr = gdaltest.mysql_ds.ExecuteSQL(statement) tr = ogrtest.check_features_against_list(lyr, 'eas_id', expect) gdaltest.mysql_ds.ReleaseResultSet(lyr) return 'success' if tr else 'fail'
def ogr_mem_6(): if gdaltest.mem_ds is None: return 'skip' sql_lyr = gdaltest.mem_ds.ExecuteSQL( \ "select * from tpoly where prfedea = '2'" ) tr = ogrtest.check_features_against_list( sql_lyr, 'prfedea', [ '2' ] ) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat_read, 'MULTILINESTRING ((5.00121349 2.99853132,5.00121349 1.99853133),(5.00121349 1.99853133,5.00121349 0.99853133),(3.00121351 1.99853127,5.00121349 1.99853133),(5.00121349 1.99853133,6.00121348 1.99853135))' ) != 0: tr = 0 gdaltest.mem_ds.ReleaseResultSet( sql_lyr ) if tr: return 'success' else: return 'fail'
def ogr_dods_3(): if gdaltest.dods_ds is None: return 'skip' gdaltest.dods_normalized.ResetReading() expect = [0,10,20,30,39] tr = ogrtest.check_features_against_list( gdaltest.dods_normalized, 'depth', expect ) if tr == 0: return 'fail' expected = [14.8100004196167,14.8100004196167,14.8100004196167,14.60999965667725,14.60999965667725] gdaltest.dods_normalized.ResetReading() for i in range(5): feat = gdaltest.dods_normalized.GetNextFeature() if feat.GetField('time') != -1936483200000: gdaltest.post_reason( 'time wrong' ) return 'fail' if abs(feat.GetField('T_20')-expected[i]) > 0.001: gdaltest.post_reason( 'T_20 wrong' ) return 'fail' if ogrtest.check_feature_geometry( feat, 'POINT (4.30000019 5.36999989)')\ != 0: return 'fail' feat.Destroy() feat = None feat = gdaltest.dods_normalized.GetNextFeature() if feat is not None: feat.Destroy() gdaltest.post_reason( 'got more than expected number of features.' ) return 'fail' return 'success'
def test_polygonize_1(is_int_polygonize=True): src_ds = gdal.Open('data/polygonize_in.grd') src_band = src_ds.GetRasterBand(1) # Create a memory OGR datasource to put results in. mem_drv = ogr.GetDriverByName('Memory') mem_ds = mem_drv.CreateDataSource('out') mem_layer = mem_ds.CreateLayer('poly', None, ogr.wkbPolygon) fd = ogr.FieldDefn('DN', ogr.OFTInteger) mem_layer.CreateField(fd) # run the algorithm. if is_int_polygonize: result = gdal.Polygonize(src_band, src_band.GetMaskBand(), mem_layer, 0) else: result = gdal.FPolygonize(src_band, src_band.GetMaskBand(), mem_layer, 0) assert result == 0, 'Polygonize failed' # Confirm we get the set of expected features in the output layer. expected_feature_number = 13 assert mem_layer.GetFeatureCount() == expected_feature_number expect = [107, 123, 115, 115, 140, 148, 123, 140, 156, 100, 101, 102, 103] tr = ogrtest.check_features_against_list(mem_layer, 'DN', expect) # check at least one geometry. if tr: mem_layer.SetAttributeFilter('dn = 156') feat_read = mem_layer.GetNextFeature() if ogrtest.check_feature_geometry(feat_read, 'POLYGON ((440720 3751200,440720 3751020,440900 3751020,440900 3751200,440720 3751200),(440780 3751140,440840 3751140,440840 3751080,440780 3751080,440780 3751140))') != 0: tr = 0 feat_read.Destroy() assert tr
def ogr_oci_3(): if gdaltest.oci_ds is None: return 'skip' expect = [168, 169, 166, 158, 165] gdaltest.oci_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.oci_lyr, 'eas_id', expect) gdaltest.oci_lyr.SetAttributeFilter(None) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.oci_lyr.GetNextFeature() reverse_rings(orig_feat.GetGeometryRef()) if ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.000000001) != 0: print('expected:', orig_feat.GetGeometryRef().ExportToWkt()) print('got:', read_feat.GetGeometryRef().ExportToWkt()) return 'fail' for fld in range(3): if orig_feat.GetField(fld) != read_feat.GetField(fld): gdaltest.post_reason('Attribute %d does not match' % fld) print('expected:') print(orig_feat.DumpReadable()) print('got:') print(read_feat.DumpReadable()) return 'fail' read_feat.Destroy() orig_feat.Destroy() gdaltest.poly_feat = None gdaltest.shp_ds.Destroy() return 'success' if tr else 'fail'
def ogr_mysql_6(): if gdaltest.mysql_ds is None: return 'skip' sql_lyr = gdaltest.mysql_ds.ExecuteSQL( "select * from tpoly where prfedea = '2'") tr = ogrtest.check_features_against_list(sql_lyr, 'prfedea', ['2']) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat_read, 'MULTILINESTRING ((5.00121349 2.99853132,5.00121349 1.99853133),(5.00121349 1.99853133,5.00121349 0.99853133),(3.00121351 1.99853127,5.00121349 1.99853133),(5.00121349 1.99853133,6.00121348 1.99853135))' ) != 0: tr = 0 feat_read.Destroy() sql_lyr.ResetReading() geom = ogr.CreateGeometryFromWkt( \ 'LINESTRING(-10 -10,0 0)' ) sql_lyr.SetSpatialFilter(geom) geom.Destroy() if sql_lyr.GetFeatureCount() != 0: gdaltest.post_reason('GetFeatureCount() returned %d instead of 0' % sql_lyr.GetFeatureCount()) return 'fail' if sql_lyr.GetNextFeature() != None: gdaltest.post_reason('GetNextFeature() didn not return None') return 'fail' gdaltest.mysql_ds.ReleaseResultSet(sql_lyr) if tr: return 'success' else: return 'fail'
def ogr_gxt_2(): gdaltest.gxt_ds = ogr.Open('data/expected_000_GRD_TAB.txt' ) if gdaltest.gxt_ds is None: return 'fail' if gdaltest.gxt_ds.GetLayerCount() != 1: gdaltest.post_reason( 'Got wrong layer count.' ) return 'fail' lyr = gdaltest.gxt_ds.GetLayer(0) if lyr.GetName() != '000_GRD.000_GRD': gdaltest.post_reason( 'got unexpected layer name.' ) return 'fail' if lyr.GetFeatureCount() != 5: gdaltest.post_reason( 'got wrong feature count.' ) return 'fail' expect = [ '000-2007-0050-7130-LAMB93', '000-2007-0595-7130-LAMB93', '000-2007-0595-6585-LAMB93', '000-2007-1145-6250-LAMB93', '000-2007-0050-6585-LAMB93' ] tr = ogrtest.check_features_against_list( lyr, 'idSel', expect ) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry(feat, 'MULTIPOLYGON (((50000 7130000,600000 7130000,600000 6580000,50000 6580000,50000 7130000)))', max_error = 0.000000001 ) != 0: return 'fail' return 'success'
def polygonize_4(): if not gdaltest.have_ng: return 'skip' src_ds = gdal.Open('data/polygonize_in.grd') src_band = src_ds.GetRasterBand(1) # Create a memory OGR datasource to put results in. mem_drv = ogr.GetDriverByName('Memory') mem_ds = mem_drv.CreateDataSource('out') mem_layer = mem_ds.CreateLayer('poly', None, ogr.wkbPolygon) fd = ogr.FieldDefn('DN', ogr.OFTInteger) mem_layer.CreateField(fd) # run the algorithm. result = gdal.Polygonize(src_band, None, mem_layer, 0, ["8CONNECTED=8"]) # Confirm we get the set of expected features in the output layer. expected_feature_number = 16 if mem_layer.GetFeatureCount() != expected_feature_number: gdaltest.post_reason( 'GetFeatureCount() returned %d instead of %d' % (mem_layer.GetFeatureCount(), expected_feature_number)) return 'fail' expect = [ 107, 123, 132, 115, 132, 115, 140, 148, 123, 140, 132, 156, 100, 101, 102, 103 ] tr = ogrtest.check_features_against_list(mem_layer, 'DN', expect) if tr: return 'success' else: return 'fail'
def ogr_bna_2(): gdaltest.bna_ds = ogr.Open('data/test.bna') lyr = gdaltest.bna_ds.GetLayerByName('test_lines') expect = ['PID3'] tr = ogrtest.check_features_against_list(lyr, 'Primary ID', expect) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat, 'LINESTRING (224.598 307.425,333.043 341.461,396.629 304.952)', max_error=0.0001) != 0: return 'fail' feat.Destroy() return 'success'
def ogr_gpx_5(): if not gdaltest.have_gpx: return 'skip' if gdaltest.gpx_ds is None: return 'fail' lyr = gdaltest.gpx_ds.GetLayerByName('track_points') expect = ['track point name', None, None, None] tr = ogrtest.check_features_against_list(lyr, 'name', expect) if not tr: return 'fail' lyr.ResetReading() feat = lyr.GetNextFeature() if ogrtest.check_feature_geometry(feat, 'POINT (15 14)', max_error=0.0001) != 0: return 'fail' return 'success'
def test_ogr_mssqlspatial_3(): if gdaltest.mssqlspatial_ds is None: pytest.skip() assert gdaltest.mssqlspatial_lyr.GetGeometryColumn() == 'ogr_geometry' assert gdaltest.mssqlspatial_lyr.GetFeatureCount() == 10 expect = [168, 169, 166, 158, 165] gdaltest.mssqlspatial_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.mssqlspatial_lyr, 'eas_id', expect) assert gdaltest.mssqlspatial_lyr.GetFeatureCount() == 5 gdaltest.mssqlspatial_lyr.SetAttributeFilter(None) gdaltest.mssqlspatial_lyr.ResetReading() for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.mssqlspatial_lyr.GetNextFeature() assert (ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.001) == 0) for fld in range(3): assert orig_feat.GetField(fld) == read_feat.GetField(fld), \ ('Attribute %d does not match' % fld) assert read_feat.GetField('INT64') == 1234567890123 read_feat = None orig_feat = None gdaltest.poly_feat = None gdaltest.shp_ds = None assert tr
def ogr_mem_8(): #################################################################### # Add new string field. field_defn = ogr.FieldDefn('new_string', ogr.OFTString) gdaltest.mem_lyr.CreateField(field_defn) #################################################################### # Apply a value to this field in one feature. gdaltest.mem_lyr.SetAttributeFilter("PRFEDEA = '2'") feat_read = gdaltest.mem_lyr.GetNextFeature() feat_read.SetField('new_string', 'test1') gdaltest.mem_lyr.SetFeature(feat_read) # Test expected failed case of SetFeature() new_feat = ogr.Feature(gdaltest.mem_lyr.GetLayerDefn()) new_feat.SetFID(-2) gdal.PushErrorHandler('CPLQuietErrorHandler') ret = gdaltest.mem_lyr.SetFeature(new_feat) gdal.PopErrorHandler() if ret == 0: return 'fail' new_feat = None #################################################################### # Now featch two features and verify the new column works OK. gdaltest.mem_lyr.SetAttributeFilter("PRFEDEA IN ( '2', '1' )") tr = ogrtest.check_features_against_list(gdaltest.mem_lyr, 'new_string', ['test1', None]) gdaltest.mem_lyr.SetAttributeFilter(None) if tr: return 'success' else: return 'fail'
def ogr_sql_sqlite_8(): if not ogrtest.has_sqlite_dialect: return 'skip' ds = ogr.Open('data') expect = [171, 172, 173, 179] sql_lyr = ds.ExecuteSQL( \ 'SELECT p.*, il.name FROM poly p ' \ + 'LEFT JOIN "data/idlink.dbf".idlink il USING (eas_id) ' \ + 'WHERE eas_id > 170 ORDER BY eas_id', dialect = 'SQLite' ) tr = ogrtest.check_features_against_list(sql_lyr, 'eas_id', expect) ds.ReleaseResultSet(sql_lyr) if tr: return 'success' else: return 'fail'
def ogr_mitab_4(): if gdaltest.mapinfo_ds is None: return 'skip' sql_lyr = gdaltest.mapinfo_ds.ExecuteSQL( \ 'select * from tpoly where prfedea = "35043413"' ) tr = ogrtest.check_features_against_list( sql_lyr, 'prfedea', [ '35043413' ] ) if tr: sql_lyr.ResetReading() feat_read = sql_lyr.GetNextFeature() if ogrtest.check_feature_geometry( feat_read, 'POLYGON ((479750.688 4764702.000,479658.594 4764670.000,479640.094 4764721.000,479735.906 4764752.000,479750.688 4764702.000))', max_error = 0.02 ) != 0: tr = 0 feat_read.Destroy() gdaltest.mapinfo_ds.ReleaseResultSet( sql_lyr ) if tr: return 'success' else: return 'fail'
def test_gdal_polygonize_2(): script_path = test_py_scripts.get_py_script('gdal_polygonize') if script_path is None: return 'skip' shp_drv = ogr.GetDriverByName('ESRI Shapefile') try: os.stat('tmp/out.shp') shp_drv.DeleteDataSource('tmp/out.shp') except: pass # run the algorithm. test_py_scripts.run_py_script(script_path, 'gdal_polygonize', '-b 1 -f "ESRI Shapefile" -q -nomask ../alg/data/polygonize_in.grd tmp') # Confirm we get the set of expected features in the output layer. shp_ds = ogr.Open('tmp') shp_lyr = shp_ds.GetLayerByName('out') expected_feature_number = 17 if shp_lyr.GetFeatureCount() != expected_feature_number: gdaltest.post_reason('GetFeatureCount() returned %d instead of %d' % (shp_lyr.GetFeatureCount(), expected_feature_number)) return 'fail' expect = [107, 123, 115, 132, 115, 132, 140, 132, 148, 123, 140, 132, 156, 100, 101, 102, 103] tr = ogrtest.check_features_against_list(shp_lyr, 'DN', expect) shp_ds.Destroy() # Reload drv because of side effects of run_py_script() shp_drv = ogr.GetDriverByName('ESRI Shapefile') shp_drv.DeleteDataSource('tmp/out.shp') if tr: return 'success' else: return 'fail'
def test_ogr_gxt_1(): gdaltest.gxt_ds = ogr.Open('data/geoconcept/expected_000_GRD.gxt') assert gdaltest.gxt_ds is not None assert gdaltest.gxt_ds.GetLayerCount() == 1, 'Got wrong layer count.' lyr = gdaltest.gxt_ds.GetLayer(0) assert lyr.GetName() == '000_GRD.000_GRD', 'got unexpected layer name.' assert lyr.GetFeatureCount() == 10, 'got wrong feature count.' expect = [ '000-2007-0050-7130-LAMB93', '000-2007-0595-7130-LAMB93', '000-2007-0595-6585-LAMB93', '000-2007-1145-6250-LAMB93', '000-2007-0050-6585-LAMB93', '000-2007-0050-7130-LAMB93', '000-2007-0595-7130-LAMB93', '000-2007-0595-6585-LAMB93', '000-2007-1145-6250-LAMB93', '000-2007-0050-6585-LAMB93' ] tr = ogrtest.check_features_against_list(lyr, 'idSel', expect) assert tr lyr.ResetReading() feat = lyr.GetNextFeature() assert (ogrtest.check_feature_geometry( feat, 'MULTIPOLYGON (((50000 7130000,600000 7130000,600000 6580000,50000 6580000,50000 7130000)))', max_error=0.000000001) == 0) srs = osr.SpatialReference() srs.SetFromUserInput( 'PROJCS["Lambert 93",GEOGCS["unnamed",DATUM["ITRS-89",SPHEROID["GRS 80",6378137,298.257222099657],TOWGS84[0,0,0,0,0,0,0]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",44],PARAMETER["standard_parallel_2",49],PARAMETER["latitude_of_origin",46.5],PARAMETER["central_meridian",3],PARAMETER["false_easting",700000],PARAMETER["false_northing",6600000],UNIT["metre",1]]' ) assert lyr.GetSpatialRef().IsSame(srs), 'SRS is not the one expected.'
def ogr_mysql_5(): if gdaltest.mysql_ds is None: return 'skip' # E. Rouault : unlike PostgresSQL driver : None is sorted in last position expect = [ 179, 173, 172, 171, 170, 169, 168, 166, 165, 158, None ] sql_lyr = gdaltest.mysql_ds.ExecuteSQL( 'select distinct eas_id from tpoly order by eas_id desc' ) if sql_lyr.GetFeatureCount() != 11: gdaltest.post_reason( 'GetFeatureCount() returned %d instead of 11' % sql_lyr.GetFeatureCount() ) return 'fail' tr = ogrtest.check_features_against_list( sql_lyr, 'eas_id', expect ) gdaltest.mysql_ds.ReleaseResultSet( sql_lyr ) if tr: return 'success' else: return 'fail'
def ogr_mem_7(): if gdaltest.mem_ds is None: return 'skip' gdaltest.mem_lyr.SetAttributeFilter(None) geom = ogr.CreateGeometryFromWkt( 'LINESTRING(479505 4763195,480526 4762819)') gdaltest.mem_lyr.SetSpatialFilter(geom) geom.Destroy() if gdaltest.mem_lyr.TestCapability(ogr.OLCFastSpatialFilter): gdaltest.post_reason('OLCFastSpatialFilter capability test should have failed.') return 'fail' tr = ogrtest.check_features_against_list(gdaltest.mem_lyr, 'eas_id', [158]) gdaltest.mem_lyr.SetSpatialFilter(None) return 'success' if tr else 'fail'
def test_gdal_polygonize_2(): script_path = test_py_scripts.get_py_script('gdal_polygonize') if script_path is None: pytest.skip() shp_drv = ogr.GetDriverByName('ESRI Shapefile') try: os.stat('tmp/out.shp') shp_drv.DeleteDataSource('tmp/out.shp') except OSError: pass # run the algorithm. test_py_scripts.run_py_script( script_path, 'gdal_polygonize', '-b 1 -f "ESRI Shapefile" -q -nomask ../alg/data/polygonize_in.grd tmp' ) # Confirm we get the set of expected features in the output layer. shp_ds = ogr.Open('tmp') shp_lyr = shp_ds.GetLayerByName('out') expected_feature_number = 17 assert shp_lyr.GetFeatureCount() == expected_feature_number expect = [ 107, 123, 115, 132, 115, 132, 140, 132, 148, 123, 140, 132, 156, 100, 101, 102, 103 ] tr = ogrtest.check_features_against_list(shp_lyr, 'DN', expect) shp_ds.Destroy() # Reload drv because of side effects of run_py_script() shp_drv = ogr.GetDriverByName('ESRI Shapefile') shp_drv.DeleteDataSource('tmp/out.shp') assert tr
def ogr_ingres_3(): if gdaltest.ingres_ds is None: return 'skip' expect = [168, 169, 166, 158, 165] gdaltest.ingres_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.ingres_lyr, 'eas_id', expect) gdaltest.ingres_lyr.SetAttributeFilter(None) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.ingres_lyr.GetNextFeature() if ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.000000001) != 0: return 'fail' for fld in range(3): if orig_feat.GetField(fld) != read_feat.GetField(fld): gdaltest.post_reason('Attribute %d does not match' % fld) return 'fail' read_feat.Destroy() orig_feat.Destroy() gdaltest.poly_feat = None gdaltest.shp_ds.Destroy() # This is to force cleanup of the transaction. We need a way of # automating this in the driver. read_feat = gdaltest.ingres_lyr.GetNextFeature() if tr: return 'success' else: return 'fail'
def ogr_mitab_9(): if gdaltest.mapinfo_drv is None: return 'skip' gdaltest.mapinfo_ds = ogr.Open('tmp') gdaltest.mapinfo_lyr = gdaltest.mapinfo_ds.GetLayer(0) expect = [168, 169, 166, 158, 165] gdaltest.mapinfo_lyr.SetAttributeFilter('eas_id < 170') tr = ogrtest.check_features_against_list(gdaltest.mapinfo_lyr, 'eas_id', expect) gdaltest.mapinfo_lyr.SetAttributeFilter(None) for i in range(len(gdaltest.poly_feat)): orig_feat = gdaltest.poly_feat[i] read_feat = gdaltest.mapinfo_lyr.GetNextFeature() if ogrtest.check_feature_geometry(read_feat, orig_feat.GetGeometryRef(), max_error=0.000000001) != 0: return 'fail' for fld in range(3): if orig_feat.GetField(fld) != read_feat.GetField(fld): gdaltest.post_reason('Attribute %d does not match' % fld) return 'fail' read_feat.Destroy() orig_feat.Destroy() gdaltest.poly_feat = None gdaltest.shp_ds.Destroy() if tr: return 'success' else: return 'fail'
def test_ogr_ingres_7(): if gdaltest.ingres_ds is None: pytest.skip() #################################################################### # Add new string field. field_defn = ogr.FieldDefn('new_string', ogr.OFTString) result = gdaltest.ingres_lyr.CreateField(field_defn) field_defn.Destroy() assert result is 0, 'CreateField failed!' #################################################################### # Apply a value to this field in one feature. gdaltest.ingres_lyr.SetAttributeFilter("prfedea = '35043423'") feat_read = gdaltest.ingres_lyr.GetNextFeature() assert feat_read is not None, 'failed to read target feature!' gdaltest.ingres_fid = feat_read.GetFID() feat_read.SetField('new_string', 'test1') gdaltest.ingres_lyr.SetFeature(feat_read) feat_read.Destroy() #################################################################### # Now fetch two features and verify the new column works OK. gdaltest.ingres_lyr.SetAttributeFilter( "PRFEDEA IN ( '35043423', '35043414' )") tr = ogrtest.check_features_against_list(gdaltest.ingres_lyr, 'new_string', [None, 'test1']) gdaltest.ingres_lyr.SetAttributeFilter(None) assert tr