def test_ogr2ogr_1(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/poly.shp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: return 'fail' feat0 = ds.GetLayer(0).GetFeature(0) if feat0.GetFieldAsDouble('AREA') != 215229.266: print(feat0.GetFieldAsDouble('AREA')) gdaltest.post_reason('Did not get expected value for field AREA') return 'fail' if feat0.GetFieldAsString('PRFEDEA') != '35043411': print(feat0.GetFieldAsString('PRFEDEA')) gdaltest.post_reason('Did not get expected value for field PRFEDEA') return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def ogr_gml_27(): if not gdaltest.have_gml_reader: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f GML tmp/ogr_gml_27.gml data/poly.shp -zfield eas_id -dsco FORMAT=GML3' ) f = open('tmp/ogr_gml_27.gml', 'rt') content = f.read() f.close() if content.find( "<gml:lowerCorner>478315.53125 4762880.5 158</gml:lowerCorner>" ) == -1: return 'fail' ds = ogr.Open('tmp/ogr_gml_27.gml') lyr = ds.GetLayer(0) if lyr.GetGeomType() != ogr.wkbPolygon25D: return 'fail' ds = None return 'success'
def test_ogr2ogr_16(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -fid 8 tmp/poly.shp ../ogr/data/poly.shp') src_ds = ogr.Open('../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 1: return 'fail' src_feat = src_ds.GetLayer(0).GetFeature(8) feat = ds.GetLayer(0).GetNextFeature() if feat.GetField("EAS_ID") != src_feat.GetField("EAS_ID"): return 'fail' ds.Destroy() src_ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_15(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/poly.shp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: return 'fail' ds.Destroy() # Overwrite gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -overwrite tmp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_7(): import ogr_pg if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if test_cli_utilities.get_ogrinfo_path() is None: return 'skip' ogr_pg.ogr_pg_1() if gdaltest.pg_ds is None: return 'skip' gdaltest.pg_ds.Destroy() gdaltest.runexternal(test_cli_utilities.get_ogrinfo_path() + ' PG:"' + gdaltest.pg_connection_string + '" -sql "DELLAYER:tpoly"') gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f PostgreSQL PG:"' + gdaltest.pg_connection_string + '" ../ogr/data/poly.shp -nln tpoly -gt 1') ds = ogr.Open('PG:' + gdaltest.pg_connection_string) if ds is None or ds.GetLayerByName('tpoly').GetFeatureCount() != 10: return 'fail' ds.Destroy() gdaltest.runexternal(test_cli_utilities.get_ogrinfo_path() + ' PG:"' + gdaltest.pg_connection_string + '" -sql "DELLAYER:tpoly"') return 'success'
def test_ogr2ogr_14(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -segmentize 100 tmp/poly.shp ../ogr/data/poly.shp poly') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: return 'fail' feat = ds.GetLayer(0).GetNextFeature() if feat.GetGeometryRef().GetGeometryRef(0).GetPointCount() != 36: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_38(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/test_ogr2ogr_38.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_38.shp') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/test_ogr2ogr_38.shp ../ogr/data/poly.shp -select AREA -where "EAS_ID = 170"' ) ds = ogr.Open('tmp/test_ogr2ogr_38.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat is None: return 'fail' ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_38.shp') return 'success'
def test_ogr2ogr_36(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/test_ogr2ogr_36.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_36.shp') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/test_ogr2ogr_36.shp ../ogr/data/poly.shp -zfield EAS_ID') ds = ogr.Open('tmp/test_ogr2ogr_36.shp') feat = ds.GetLayer(0).GetNextFeature() wkt = feat.GetGeometryRef().ExportToWkt() ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_36.shp') if wkt.find(' 168,') == -1: return 'fail' return 'success'
def test_ogr2ogr_py_23(): script_path = test_py_scripts.get_py_script('ogr2ogr') if script_path is None: return 'skip' if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" tmp/testogr2ogr23.mif ../utilities/data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -select comment,name -nlt POINT') ds = ogr.Open('tmp/testogr2ogr23.mif') if ds is None: return 'fail' layer_defn = ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString('name') != 'NAME' or \ feat.GetFieldAsString('comment') != 'COMMENT': print(feat.GetFieldAsString('name')) print(feat.GetFieldAsString('comment')) ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource('tmp/testogr2ogr23.mif') return 'fail' ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource('tmp/testogr2ogr23.mif') return 'success'
def test_ogr2ogr_18(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if ogrtest.have_geos() is 0: return 'skip' try: os.stat('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_src.shp') except: pass try: os.stat('tmp/wrapdateline_dst.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_dst.shp') except: pass ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource( 'tmp/wrapdateline_src.shp') srs = osr.SpatialReference() srs.ImportFromEPSG(32660) lyr = ds.CreateLayer('wrapdateline_src', srs=srs) feat = ogr.Feature(lyr.GetLayerDefn()) geom = ogr.CreateGeometryFromWkt( 'POLYGON((700000 4000000,800000 4000000,800000 3000000,700000 3000000,700000 4000000))' ) feat.SetGeometryDirectly(geom) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy() gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -wrapdateline -t_srs EPSG:4326 tmp/wrapdateline_dst.shp tmp/wrapdateline_src.shp' ) expected_wkt = 'MULTIPOLYGON (((179.222391385437419 36.124095832129363,180.0 36.10605558800065,180.0 27.090340569400169,179.017505655195095 27.107979523625211,179.222391385437419 36.124095832129363)),((-180.0 36.10605558800065,-179.667822828781084 36.098349195413753,-179.974688335419557 27.089886143076747,-180.0 27.090340569400169,-180.0 36.10605558800065)))' expected_geom = ogr.CreateGeometryFromWkt(expected_wkt) ds = ogr.Open('tmp/wrapdateline_dst.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() ret = ogrtest.check_feature_geometry(feat, expected_geom) feat.Destroy() expected_geom.Destroy() ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_dst.shp') if ret == 0: return 'success' else: return 'fail'
def test_ogr2ogr_37(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/test_ogr2ogr_37_dir.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/test_ogr2ogr_37_dir.shp') except: pass try: os.mkdir('tmp/test_ogr2ogr_37_src') except: pass shutil.copy('../ogr/data/poly.shp', 'tmp/test_ogr2ogr_37_src') shutil.copy('../ogr/data/poly.shx', 'tmp/test_ogr2ogr_37_src') shutil.copy('../ogr/data/poly.dbf', 'tmp/test_ogr2ogr_37_src') shutil.copy('../ogr/data/testpoly.shp', 'tmp/test_ogr2ogr_37_src') shutil.copy('../ogr/data/testpoly.shx', 'tmp/test_ogr2ogr_37_src') shutil.copy('../ogr/data/testpoly.dbf', 'tmp/test_ogr2ogr_37_src') gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/test_ogr2ogr_37_dir.shp tmp/test_ogr2ogr_37_src') ds = ogr.Open('tmp/test_ogr2ogr_37_dir.shp') if ds is None or ds.GetLayerCount() != 2: return 'fail' ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/test_ogr2ogr_37_src') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/test_ogr2ogr_37_dir.shp') return 'success'
def ogr_fgdb_3(): if ogrtest.fgdb_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: shutil.rmtree("tmp/poly.gdb") except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f filegdb tmp/poly.gdb data/poly.shp -nlt MULTIPOLYGON -a_srs None') ds = ogr.Open('tmp/poly.gdb') if ds is None or ds.GetLayerCount() == 0: gdaltest.post_reason('ogr2ogr failed') return 'fail' ds = None if test_cli_utilities.get_test_ogrsf_path() is None: return 'skip' ret = gdaltest.runexternal(test_cli_utilities.get_test_ogrsf_path() + ' tmp/poly.gdb') #print ret if ret.find('INFO') == -1 or ret.find('ERROR') != -1: print(ret) return 'fail' return 'success'
def ogr_osm_3(options=None): if ogrtest.osm_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' filepath = 'tmp/ogr_osm_3' if os.path.exists(filepath): ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource(filepath) if options is not None: options = ' ' + options else: options = '' gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_3 data/test.pbf points lines multipolygons multilinestrings -progress' + options) ret = ogr_osm_1(filepath) ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource(filepath) return ret
def test_ogr2ogr_py_23(): script_path = test_py_scripts.get_py_script("ogr2ogr") if script_path is None: return "skip" if test_cli_utilities.get_ogr2ogr_path() is None: return "skip" gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" tmp/testogr2ogr23.mif ../utilities/data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -select comment,name -nlt POINT' ) ds = ogr.Open("tmp/testogr2ogr23.mif") if ds is None: return "fail" layer_defn = ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString("name") != "NAME" or feat.GetFieldAsString("comment") != "COMMENT": print(feat.GetFieldAsString("name")) print(feat.GetFieldAsString("comment")) ds.Destroy() ogr.GetDriverByName("MapInfo File").DeleteDataSource("tmp/testogr2ogr23.mif") return "fail" ds.Destroy() ogr.GetDriverByName("MapInfo File").DeleteDataSource("tmp/testogr2ogr23.mif") return "success"
def test_ogr2ogr_py_23(): script_path = test_py_scripts.get_py_script('ogr2ogr') if script_path is None: pytest.skip() if test_cli_utilities.get_ogr2ogr_path() is None: pytest.skip() gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" tmp/testogr2ogr23.mif ../utilities/data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -select comment,name -nlt POINT' ) ds = ogr.Open('tmp/testogr2ogr23.mif') assert ds is not None ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString('name') != 'NAME' or \ feat.GetFieldAsString('comment') != 'COMMENT': print(feat.GetFieldAsString('comment')) ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource( 'tmp/testogr2ogr23.mif') pytest.fail(feat.GetFieldAsString('name')) ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource( 'tmp/testogr2ogr23.mif')
def ogr_osm_6(): if ogrtest.osm_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/ogr_osm_6') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_6 data/test.pbf -sql "select * from multipolygons" -progress' ) ds = ogr.Open('tmp/ogr_osm_6') lyr = ds.GetLayer(0) count = lyr.GetFeatureCount() ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') if count != 3: gdaltest.post_reason('fail') print(count) return 'fail' return 'success'
def test_ogr2ogr_3(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/poly.shp ../ogr/data/poly.shp -spat 479609 4764629 479764 4764817' ) ds = ogr.Open('tmp/poly.shp') if ogrtest.have_geos(): if ds is None or ds.GetLayer(0).GetFeatureCount() != 4: return 'fail' else: if ds is None or ds.GetLayer(0).GetFeatureCount() != 5: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_26(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if not ogrtest.have_geos(): return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/poly.shp ../ogr/data/poly.shp -clipdst "POLYGON((479609 4764629,479609 4764817,479764 4764817,479764 4764629,479609 4764629))"') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 4: return 'fail' if ds.GetLayer(0).GetExtent() != (479609, 479764, 4764629, 4764817): print(ds.GetLayer(0).GetExtent()) gdaltest.post_reason('unexpected extent') return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def ogr_gml_28(): if not gdaltest.have_gml_reader: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f GML tmp/ogr_gml_28.gml data/idlink.dbf') # Try with .xsd ds = ogr.Open('tmp/ogr_gml_28.gml') lyr = ds.GetLayer(0) if lyr.GetGeomType() != ogr.wkbNone: return 'fail' ds = None os.unlink('tmp/ogr_gml_28.xsd') ds = ogr.Open('tmp/ogr_gml_28.gml') lyr = ds.GetLayer(0) if lyr.GetGeomType() != ogr.wkbNone: return 'fail' ds = None # Try with .gfs ds = ogr.Open('tmp/ogr_gml_28.gml') lyr = ds.GetLayer(0) if lyr.GetGeomType() != ogr.wkbNone: return 'fail' ds = None return 'success'
def test_gdalwarp_46(): if test_cli_utilities.get_gdalwarp_path() is None: pytest.skip() if test_cli_utilities.get_ogr2ogr_path() is None: pytest.skip() gdaltest.runexternal(test_cli_utilities.get_gdalwarp_path() + ' ../gcore/data/utmsmall.tif tmp/test_gdalwarp_46.tif -cutline data/cutline.vrt -crop_to_cutline -overwrite') ds = gdal.Open('tmp/test_gdalwarp_46.tif') assert ds is not None assert ds.GetRasterBand(1).Checksum() == 18837, 'Bad checksum' ds = None # With explicit -s_srs and -t_srs gdaltest.runexternal(test_cli_utilities.get_gdalwarp_path() + ' ../gcore/data/utmsmall.tif tmp/test_gdalwarp_46.tif -cutline data/cutline.vrt -crop_to_cutline -overwrite -s_srs EPSG:26711 -t_srs EPSG:26711') ds = gdal.Open('tmp/test_gdalwarp_46.tif') assert ds is not None assert ds.GetRasterBand(1).Checksum() == 18837, 'Bad checksum' ds = None # With cutline in another SRS gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/cutline_4326.shp data/cutline.vrt -s_srs EPSG:26711 -t_srs EPSG:4326') gdaltest.runexternal(test_cli_utilities.get_gdalwarp_path() + ' ../gcore/data/utmsmall.tif tmp/test_gdalwarp_46.tif -cutline tmp/cutline_4326.shp -crop_to_cutline -overwrite -t_srs EPSG:32711') ds = gdal.Open('tmp/test_gdalwarp_46.tif') assert ds is not None assert ds.GetRasterBand(1).Checksum() == 19582, 'Bad checksum' ds = None
def ogr_fgdb_3(): if ogrtest.fgdb_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if test_cli_utilities.get_test_ogrsf_path() is None: return 'skip' try: shutil.rmtree("tmp/poly.gdb") except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f filegdb tmp/poly.gdb data/poly.shp -nlt MULTIPOLYGON -a_srs None') ret = gdaltest.runexternal(test_cli_utilities.get_test_ogrsf_path() + ' tmp/poly.gdb') #print ret if ret.find('INFO') == -1 or ret.find('ERROR') != -1: print(ret) return 'fail' return 'success'
def ogr_gml_27(): if not gdaltest.have_gml_reader: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f GML tmp/ogr_gml_27.gml data/poly.shp -zfield eas_id -dsco FORMAT=GML3') f = open('tmp/ogr_gml_27.gml', 'rt') content = f.read() f.close() if content.find("<gml:lowerCorner>478315.53125 4762880.5 158</gml:lowerCorner>") == -1: return 'fail' ds = ogr.Open('tmp/ogr_gml_27.gml') lyr = ds.GetLayer(0) if lyr.GetGeomType() != ogr.wkbPolygon25D: return 'fail' ds = None return 'success'
def ogr_osm_6(): if ogrtest.osm_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/ogr_osm_6') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_6 data/test.pbf -sql "select * from multipolygons" -progress') ds = ogr.Open('tmp/ogr_osm_6') lyr = ds.GetLayer(0) count = lyr.GetFeatureCount() ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') if count != 3: gdaltest.post_reason('fail') print(count) return 'fail' return 'success'
def test_ogr2ogr_26(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if not ogrtest.have_geos(): return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/poly.shp ../ogr/data/poly.shp -clipdst "POLYGON((479609 4764629,479609 4764817,479764 4764817,479764 4764629,479609 4764629))"' ) ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 4: return 'fail' if ds.GetLayer(0).GetExtent() != (479609, 479764, 4764629, 4764817): print(ds.GetLayer(0).GetExtent()) gdaltest.post_reason('unexpected extent') return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_23(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" tmp/testogr2ogr23.mif data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -select comment,name -nlt POINT' ) ds = ogr.Open('tmp/testogr2ogr23.mif') if ds is None: return 'fail' layer_defn = ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString('name') != 'NAME' or \ feat.GetFieldAsString('comment') != 'COMMENT': print(feat.GetFieldAsString('name')) print(feat.GetFieldAsString('comment')) ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource( 'tmp/testogr2ogr23.mif') return 'fail' ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource( 'tmp/testogr2ogr23.mif') return 'success'
def test_ogr2ogr_21(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.remove('tmp/testogr2ogr21.gtm') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f GPSTrackMaker tmp/testogr2ogr21.gtm data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -nlt POINT') ds = ogr.Open('tmp/testogr2ogr21.gtm') if ds is None: return 'fail' layer_defn = ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString('name') != 'NAME' or \ feat.GetFieldAsString('comment') != 'COMMENT': print(feat.GetFieldAsString('name')) print(feat.GetFieldAsString('comment')) ds.Destroy() os.remove('tmp/testogr2ogr21.gtm') return 'fail' ds.Destroy() os.remove('tmp/testogr2ogr21.gtm') return 'success'
def ogr_fgdb_3(): if ogrtest.fgdb_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if test_cli_utilities.get_test_ogrsf_path() is None: return 'skip' try: shutil.rmtree("tmp/poly.gdb") except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f filegdb tmp/poly.gdb data/poly.shp -nlt MULTIPOLYGON -a_srs None') ret = gdaltest.runexternal(test_cli_utilities.get_test_ogrsf_path() + ' tmp/poly.gdb') #print ret if ret.find('INFO') == -1 or ret.find('ERROR') != -1: print(ret) return 'fail' return 'success'
def test_ogr2ogr_21(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.remove('tmp/testogr2ogr21.gtm') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f GPSTrackMaker tmp/testogr2ogr21.gtm data/dataforogr2ogr21.csv ' + '-sql "SELECT comment, name FROM dataforogr2ogr21" -nlt POINT') ds = ogr.Open('tmp/testogr2ogr21.gtm') if ds is None: return 'fail' layer_defn = ds.GetLayer(0).GetLayerDefn() lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() if feat.GetFieldAsString('name') != 'NAME' or \ feat.GetFieldAsString('comment') != 'COMMENT': print(feat.GetFieldAsString('name')) print(feat.GetFieldAsString('comment')) ds.Destroy() os.remove('tmp/testogr2ogr21.gtm') return 'fail' ds.Destroy() os.remove('tmp/testogr2ogr21.gtm') return 'success'
def test_ogr2ogr_27(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if not ogrtest.have_geos(): return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass f = open('tmp/clip.csv', 'wt') f.write('foo,WKT\n') f.write('foo,"POLYGON((479609 4764629,479609 4764817,479764 4764817,479764 4764629,479609 4764629))"\n') f.close() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -nlt MULTIPOLYGON tmp/poly.shp ../ogr/data/poly.shp -clipdst tmp/clip.csv -clipdstsql "SELECT * from clip"') ds = ogr.Open('tmp/poly.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 4: return 'fail' if ds.GetLayer(0).GetExtent() != (479609, 479764, 4764629, 4764817): print(ds.GetLayer(0).GetExtent()) gdaltest.post_reason('unexpected extent') return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') os.remove('tmp/clip.csv') return 'success'
def ogr_osm_3(options = None): try: drv = ogr.GetDriverByName('OSM') except: drv = None if drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/ogr_osm_3') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_3') except: pass if options is not None: options = ' ' + options else: options = '' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_3 data/test.pbf points lines polygons multipolygons multilinestrings -progress' + options) ret = ogr_osm_1('tmp/ogr_osm_3') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_3') return ret
def ogr_osm_3(): try: drv = ogr.GetDriverByName('OSM') except: drv = None if drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/ogr_osm_3') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_3') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_3 data/test.pbf points lines polygons multipolygons multilinestrings -progress') ret = ogr_osm_1('tmp/ogr_osm_3') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_3') return ret
def ogr_fgdb_3(): if ogrtest.fgdb_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: shutil.rmtree("tmp/poly.gdb") except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f filegdb tmp/poly.gdb data/poly.shp -nlt MULTIPOLYGON -a_srs None') ds = ogr.Open('tmp/poly.gdb') if ds is None or ds.GetLayerCount() == 0: gdaltest.post_reason('ogr2ogr failed') return 'fail' ds = None if test_cli_utilities.get_test_ogrsf_path() is None: return 'skip' ret = gdaltest.runexternal(test_cli_utilities.get_test_ogrsf_path() + ' tmp/poly.gdb') #print ret if ret.find('INFO') == -1 or ret.find('ERROR') != -1: print(ret) return 'fail' return 'success'
def test_ogr_osm_6(): if ogrtest.osm_drv is None: pytest.skip() import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: pytest.skip() try: os.stat('tmp/ogr_osm_6') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') except (OSError, AttributeError): pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_6 data/osm/test.pbf -sql "select * from multipolygons" -progress' ) ds = ogr.Open('tmp/ogr_osm_6') lyr = ds.GetLayer(0) count = lyr.GetFeatureCount() ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') assert count == 3
def test_ogr_osm_6(): if ogrtest.osm_drv is None: pytest.skip() import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: pytest.skip() try: os.stat('tmp/ogr_osm_6') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') except (OSError, AttributeError): pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp/ogr_osm_6 data/test.pbf -sql "select * from multipolygons" -progress') ds = ogr.Open('tmp/ogr_osm_6') lyr = ds.GetLayer(0) count = lyr.GetFeatureCount() ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/ogr_osm_6') assert count == 3
def test_ogr2ogr_29(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if ogrtest.have_geos() is 0: return 'skip' for i in range(2): try: os.stat('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') except: pass try: os.stat('tmp/wrapdateline_dst.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') except: pass ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource('tmp/wrapdateline_src.shp') srs = osr.SpatialReference() srs.ImportFromEPSG(4326); lyr = ds.CreateLayer('wrapdateline_src', srs = srs) feat = ogr.Feature(lyr.GetLayerDefn()) if i == 0: geom = ogr.CreateGeometryFromWkt('POLYGON((179 40,179.5 40,-179.5 40,-179 40,-170 40,-165 40,-165 30,-170 30,-179 30,-179.5 30,179.5 30,179 30,179 40))') else: geom = ogr.CreateGeometryFromWkt('POLYGON((-165 30,-170 30,-179 30,-179.5 30,179.5 30,179 30,179 40,179.5 40,-179.5 40,-179 40,-170 40,-165 40,-165 30))') feat.SetGeometry(geom) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -wrapdateline tmp/wrapdateline_dst.shp tmp/wrapdateline_src.shp') expected_wkt = 'MULTIPOLYGON (((180 30,179.5 30.0,179 30,179 40,179.5 40.0,180 40,180 30)),((-180 40,-179.5 40.0,-179 40,-170 40,-165 40,-165 30,-170 30,-179 30,-179.5 30.0,-180 30,-180 40)))' expected_geom = ogr.CreateGeometryFromWkt(expected_wkt) ds = ogr.Open('tmp/wrapdateline_dst.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() ret = ogrtest.check_feature_geometry(feat, expected_geom) if ret != 0: print('src is : %s' % geom.ExportToWkt()) print('got : %s' % feat.GetGeometryRef().ExportToWkt()) feat.Destroy() expected_geom.Destroy() ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') if ret != 0: return 'fail' return 'success'
def test_ogr2ogr_28(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_src.shp') except: pass try: os.stat('tmp/wrapdateline_dst.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_dst.shp') except: pass ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource( 'tmp/wrapdateline_src.shp') srs = osr.SpatialReference() srs.ImportFromEPSG(4326) lyr = ds.CreateLayer('wrapdateline_src', srs=srs) feat = ogr.Feature(lyr.GetLayerDefn()) geom = ogr.CreateGeometryFromWkt( 'LINESTRING(160 0,165 1,170 2,175 3,177 4,-177 5,-175 6,-170 7,-177 8,177 9,170 10)' ) feat.SetGeometryDirectly(geom) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy() gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -wrapdateline tmp/wrapdateline_dst.shp tmp/wrapdateline_src.shp') expected_wkt = 'MULTILINESTRING ((160 0,165 1,170 2,175 3,177 4,180 4.5),(-180 4.5,-177 5,-175 6,-170 7,-177 8,-180 8.5),(180 8.5,177 9,170 10))' expected_geom = ogr.CreateGeometryFromWkt(expected_wkt) ds = ogr.Open('tmp/wrapdateline_dst.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() ret = ogrtest.check_feature_geometry(feat, expected_geom) feat.Destroy() expected_geom.Destroy() ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/wrapdateline_dst.shp') if ret == 0: return 'success' else: return 'fail'
def ogr_mitab_14(): if gdaltest.mapinfo_drv is None: return 'skip' import ogr_gml_read if ogr_gml_read.ogr_gml_1() != 'success': return 'skip' if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/testlyrdef.mif') ogr.GetDriverByName('MapInfo File').DeleteDataSource( 'tmp/testlyrdef.mif') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" -dsco FORMAT=MIF tmp/testlyrdef.mif ../ogr/data/testlyrdef.gml' ) ds = ogr.Open('tmp/testlyrdef.mif') #Check if the width and precision are as preserved. lyr = ds.GetLayer('testlyrdef') if lyr is None: gdaltest.post_reason('Layer missing.') return 'fail' defn = lyr.GetLayerDefn() data = [['AREA', ogr.OFTReal, 7, 4], ['VOLUME', ogr.OFTReal, 0, 0], ['LENGTH', ogr.OFTInteger, 254, 0], ['WIDTH', ogr.OFTInteger, 254, 0]] for field in data: fld = defn.GetFieldDefn(defn.GetFieldIndex(field[0])) expected_with = field[2] if fld.GetType() == ogr.OFTInteger: expected_with = 0 if fld.GetType() != field[1] or fld.GetWidth( ) != expected_with or fld.GetPrecision() != field[3]: gdaltest.post_reason(field[0] + ' field definition wrong.') return 'fail' ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource('tmp/testlyrdef.mif') return 'success'
def ogr_gft_ogr2ogr_non_spatial(): if ogrtest.gft_drv is None: return "skip" if not ogrtest.gft_can_write: return "skip" import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return "skip" layer_name = "no_geometry_table_%d" % ogrtest.gft_rand_val f = open("tmp/no_geometry_table.csv", "wt") f.write("foo,bar\n") f.write('"baz","foo"\n') f.write('"baz2","foo2"\n') f.write('"baz\'3","foo3"\n') f.close() gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f GFT "GFT:refresh=' + ogrtest.gft_refresh + '" tmp/no_geometry_table.csv -nln ' + layer_name + " -overwrite" ) os.unlink("tmp/no_geometry_table.csv") ds = ogr.Open("GFT:refresh=%s" % ogrtest.gft_refresh, update=1) lyr = ds.GetLayerByName(layer_name) if lyr.GetLayerDefn().GetFieldCount() != 2: gdaltest.post_reason("did not get expected field count") ds.ExecuteSQL("DELLAYER:" + layer_name) return "fail" if lyr.GetGeomType() != ogr.wkbNone: gdaltest.post_reason("did not get expected layer geometry type") ds.ExecuteSQL("DELLAYER:" + layer_name) return "fail" if lyr.GetFeatureCount() != 3: gdaltest.post_reason("did not get expected feature count") ds.ExecuteSQL("DELLAYER:" + layer_name) return "fail" ds.ExecuteSQL("DELLAYER:" + layer_name) ds = None return "success"
def test_ogr2ogr_20(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' expected_fields = [ 'a', 'A_1', 'a_1_2', 'aaaaaAAAAA', 'aAaaaAAA_1', 'aaaaaAAAAB', 'aaaaaAAA_2', 'aaaaaAAA_3', 'aaaaaAAA_4', 'aaaaaAAA_5', 'aaaaaAAA_6', 'aaaaaAAA_7', 'aaaaaAAA_8', 'aaaaaAAA_9', 'aaaaaAAA10' ] expected_data = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15' ] gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' tmp data/Fields.csv') ds = ogr.Open('tmp/Fields.dbf') if ds is None: return 'fail' layer_defn = ds.GetLayer(0).GetLayerDefn() if layer_defn.GetFieldCount() != 15: gdaltest.post_reason( 'Unexpected field count: ' + str(ds.GetLayer(0).GetLayerDefn().GetFieldCount())) ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/Fields.dbf') return 'fail' error_occured = False feat = ds.GetLayer(0).GetNextFeature() for i in range(layer_defn.GetFieldCount()): if layer_defn.GetFieldDefn(i).GetNameRef() != expected_fields[i]: print('Expected ', expected_fields[i], ',but got', layer_defn.GetFieldDefn(i).GetNameRef()) error_occured = True if feat.GetFieldAsString(i) != expected_data[i]: print('Expected the value ', expected_data[i], ',but got', feat.GetFieldAsString(i)) error_occured = True ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/Fields.dbf') if error_occured: return 'fail' return 'success'
def ogr_tiger_3(): if ogrtest.tiger_ds is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: shutil.rmtree('tmp/outtiger') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -f TIGER tmp/outtiger tmp/cache/TGR01001 -dsco VERSION=1006') ret = 'success' filelist = os.listdir('tmp/cache/TGR01001') exceptions = [ 'TGR01001.RTA', 'TGR01001.RTC', 'TGR01001.MET', 'TGR01001.RTZ', 'TGR01001.RTS' ] for filename in filelist: if filename in exceptions: continue f = open('tmp/cache/TGR01001/' + filename, 'rb') data1 = f.read() f.close() try: f = open('tmp/outtiger/' + filename, 'rb') data2 = f.read() f.close() if data1 != data2: #gdaltest.post_reason('%s is different' % filename) print('%s is different' % filename) ret = 'fail' except: #gdaltest.post_reason('could not find %s' % filename) print('could not find %s' % filename) ret = 'fail' try: shutil.rmtree('tmp/outtiger') except: pass return ret
def test_ogr2ogr_18(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' if ogrtest.have_geos() is 0: return 'skip' try: os.stat('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') except: pass try: os.stat('tmp/wrapdateline_dst.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') except: pass ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource('tmp/wrapdateline_src.shp') srs = osr.SpatialReference() srs.ImportFromEPSG(32660); lyr = ds.CreateLayer('wrapdateline_src', srs = srs) feat = ogr.Feature(lyr.GetLayerDefn()) geom = ogr.CreateGeometryFromWkt('POLYGON((700000 4000000,800000 4000000,800000 3000000,700000 3000000,700000 4000000))') feat.SetGeometryDirectly(geom) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -wrapdateline -t_srs EPSG:4326 tmp/wrapdateline_dst.shp tmp/wrapdateline_src.shp') expected_wkt = 'MULTIPOLYGON (((179.222391385437419 36.124095832129363,180.0 36.10605558800065,180.0 27.090340569400169,179.017505655195095 27.107979523625211,179.222391385437419 36.124095832129363)),((-180.0 36.10605558800065,-179.667822828781084 36.098349195413753,-179.974688335419557 27.089886143076747,-180.0 27.090340569400169,-180.0 36.10605558800065)))' expected_geom = ogr.CreateGeometryFromWkt(expected_wkt) ds = ogr.Open('tmp/wrapdateline_dst.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() ret = ogrtest.check_feature_geometry(feat, expected_geom) feat.Destroy() expected_geom.Destroy() ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') if ret == 0: return 'success' else: return 'fail'
def ogr_mitab_14(): if gdaltest.mapinfo_drv is None: return 'skip' import ogr_gml_read if ogr_gml_read.ogr_gml_1() != 'success': return 'skip' if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/testlyrdef.mif') ogr.GetDriverByName('MapInfo File').DeleteDataSource('tmp/testlyrdef.mif') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f "MapInfo File" -dsco FORMAT=MIF tmp/testlyrdef.mif ../ogr/data/testlyrdef.gml') ds = ogr.Open('tmp/testlyrdef.mif') #Check if the width and precision are as preserved. lyr = ds.GetLayer('testlyrdef') if lyr is None: gdaltest.post_reason( 'Layer missing.' ) return 'fail' defn = lyr.GetLayerDefn() data = [['AREA', ogr.OFTReal, 7, 4], ['VOLUME',ogr.OFTReal, 0, 0], ['LENGTH',ogr.OFTInteger,254,0], ['WIDTH', ogr.OFTInteger,254,0]] for field in data: fld = defn.GetFieldDefn(defn.GetFieldIndex(field[0])) expected_with = field[2] if fld.GetType() == ogr.OFTInteger: expected_with = 0 if fld.GetType() != field[1] or fld.GetWidth() != expected_with or fld.GetPrecision() != field[3]: gdaltest.post_reason( field[0] + ' field definition wrong.' ) return 'fail' ds.Destroy() ogr.GetDriverByName('MapInfo File').DeleteDataSource('tmp/testlyrdef.mif') return 'success'
def ogr_gft_ogr2ogr_non_spatial(): if ogrtest.gft_drv is None: return 'skip' if not ogrtest.gft_can_write: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' layer_name = 'no_geometry_table_%d' % ogrtest.gft_rand_val f = open('tmp/no_geometry_table.csv', 'wt') f.write('foo,bar\n') f.write('"baz","foo"\n') f.write('"baz2","foo2"\n') f.write('"baz\'3","foo3"\n') f.close() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f GFT "GFT:refresh=' + ogrtest.gft_refresh + '" tmp/no_geometry_table.csv -nln ' + layer_name + ' -overwrite') os.unlink('tmp/no_geometry_table.csv') ds = ogr.Open('GFT:refresh=%s' % ogrtest.gft_refresh, update=1) lyr = ds.GetLayerByName(layer_name) if lyr.GetLayerDefn().GetFieldCount() != 2: gdaltest.post_reason('did not get expected field count') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' if lyr.GetGeomType() != ogr.wkbNone: gdaltest.post_reason('did not get expected layer geometry type') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' if lyr.GetFeatureCount() != 3: gdaltest.post_reason('did not get expected feature count') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' ds.ExecuteSQL('DELLAYER:' + layer_name) ds = None return 'success'
def test_ogr2ogr_34(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/test_ogr2ogr_34_dir') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_34_dir') except: pass gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' tmp/test_ogr2ogr_34_dir ../ogr/data/poly.shp -nln test_ogr2ogr_34_dir' ) ds = ogr.Open('tmp/test_ogr2ogr_34_dir/test_ogr2ogr_34_dir.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: gdaltest.post_reason('initial shapefile creation failed') return 'fail' ds = None gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -append tmp/test_ogr2ogr_34_dir ../ogr/data/poly.shp -nln test_ogr2ogr_34_dir' ) ds = ogr.Open('tmp/test_ogr2ogr_34_dir/test_ogr2ogr_34_dir.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 20: gdaltest.post_reason('-append failed') return 'fail' ds = None gdaltest.runexternal( test_cli_utilities.get_ogr2ogr_path() + ' -overwrite tmp/test_ogr2ogr_34_dir ../ogr/data/poly.shp -nln test_ogr2ogr_34_dir' ) ds = ogr.Open('tmp/test_ogr2ogr_34_dir/test_ogr2ogr_34_dir.shp') if ds is None or ds.GetLayer(0).GetFeatureCount() != 10: gdaltest.post_reason('-overwrite failed') return 'fail' ds = None ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource( 'tmp/test_ogr2ogr_34_dir') return 'success'
def test_ogr_ods_5(): import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: pytest.skip() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f ODS tmp/test.ods data/ods/test.ods') ds = ogr.Open('tmp/test.ods') ret = ogr_ods_check(ds) ds = None os.unlink('tmp/test.ods') return ret
def ogr_fgdb_sql(): if ogrtest.fgdb_drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' ds = ogr.Open('tmp/poly.gdb') ds.ExecuteSQL("CREATE INDEX idx_poly_eas_id ON poly(EAS_ID)") sql_lyr = ds.ExecuteSQL("SELECT * FROM POLY WHERE EAS_ID = 170", dialect='FileGDB') feat = sql_lyr.GetNextFeature() if feat is None: return 'fail' feat = sql_lyr.GetNextFeature() if feat is not None: return 'fail' feat = None ds.ReleaseResultSet(sql_lyr) ds = None return 'success'
def test_ogr2ogr_28(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') except: pass try: os.stat('tmp/wrapdateline_dst.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') except: pass ds = ogr.GetDriverByName('ESRI Shapefile').CreateDataSource('tmp/wrapdateline_src.shp') srs = osr.SpatialReference() srs.ImportFromEPSG(4326); lyr = ds.CreateLayer('wrapdateline_src', srs = srs) feat = ogr.Feature(lyr.GetLayerDefn()) geom = ogr.CreateGeometryFromWkt('LINESTRING(160 0,165 1,170 2,175 3,177 4,-177 5,-175 6,-170 7,-177 8,177 9,170 10)') feat.SetGeometryDirectly(geom) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -wrapdateline tmp/wrapdateline_dst.shp tmp/wrapdateline_src.shp') expected_wkt = 'MULTILINESTRING ((160 0,165 1,170 2,175 3,177 4,180 4.5),(-180 4.5,-177 5,-175 6,-170 7,-177 8,-180 8.5),(180 8.5,177 9,170 10))' expected_geom = ogr.CreateGeometryFromWkt(expected_wkt) ds = ogr.Open('tmp/wrapdateline_dst.shp') lyr = ds.GetLayer(0) feat = lyr.GetNextFeature() ret = ogrtest.check_feature_geometry(feat, expected_geom) feat.Destroy() expected_geom.Destroy() ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_src.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/wrapdateline_dst.shp') if ret == 0: return 'success' else: return 'fail'
def ogr_gft_ogr2ogr_non_spatial(): if ogrtest.gft_drv is None: return 'skip' if not ogrtest.gft_can_write: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' layer_name = 'no_geometry_table_%d' % ogrtest.gft_rand_val f = open('tmp/no_geometry_table.csv', 'wt') f.write('foo,bar\n') f.write('"baz","foo"\n') f.write('"baz2","foo2"\n') f.write('"baz\'3","foo3"\n') f.close() gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f GFT "GFT:refresh=' + ogrtest.gft_refresh + '" tmp/no_geometry_table.csv -nln ' + layer_name + ' -overwrite') os.unlink('tmp/no_geometry_table.csv') ds = ogr.Open('GFT:refresh=%s' % ogrtest.gft_refresh, update = 1) lyr = ds.GetLayerByName(layer_name) if lyr.GetLayerDefn().GetFieldCount() != 2: gdaltest.post_reason('did not get expected field count') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' if lyr.GetGeomType() != ogr.wkbNone: gdaltest.post_reason('did not get expected layer geometry type') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' if lyr.GetFeatureCount() != 3: gdaltest.post_reason('did not get expected feature count') ds.ExecuteSQL('DELLAYER:' + layer_name) return 'fail' ds.ExecuteSQL('DELLAYER:' + layer_name) ds = None return 'success'
def ogr_tiger_3(): if ogrtest.tiger_ds is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: shutil.rmtree('tmp/outtiger') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f TIGER tmp/outtiger tmp/cache/TGR01001 -dsco VERSION=1006') ret = 'success' filelist = os.listdir('tmp/cache/TGR01001') exceptions = [ 'TGR01001.RTA', 'TGR01001.RTC', 'TGR01001.MET', 'TGR01001.RTZ', 'TGR01001.RTS'] for filename in filelist: if filename in exceptions: continue f = open('tmp/cache/TGR01001/' + filename, 'rb') data1 = f.read() f.close() try: f = open('tmp/outtiger/' + filename, 'rb') data2 = f.read() f.close() if data1 != data2: #gdaltest.post_reason('%s is different' % filename) print('%s is different' % filename) ret = 'fail' except: #gdaltest.post_reason('could not find %s' % filename) print('could not find %s' % filename) ret = 'fail' try: shutil.rmtree('tmp/outtiger') except: pass return ret
def ogr_ods_5(): drv = ogr.GetDriverByName('ODS') if drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f ODS tmp/test.ods data/test.ods') ds = ogr.Open('tmp/test.ods') ret = ogr_ods_check(ds) ds = None os.unlink('tmp/test.ods') return ret
def ogr_xlsx_5(): drv = ogr.GetDriverByName('XLSX') if drv is None: return 'skip' import test_cli_utilities if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -f XLSX tmp/test.xlsx data/test.xlsx') ds = ogr.Open('tmp/test.xlsx') ret = ogr_xlsx_check(ds) ds = None os.unlink('tmp/test.xlsx') return ret
def test_ogr2ogr_9(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -a_srs EPSG:4326 tmp/poly.shp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if str(ds.GetLayer(0).GetSpatialRef()).find('1984') == -1: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_10(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -select AREA tmp/poly.shp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds.GetLayer(0).GetLayerDefn().GetFieldCount() != 1: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'
def test_ogr2ogr_12(): if test_cli_utilities.get_ogr2ogr_path() is None: return 'skip' try: os.stat('tmp/poly.shp') ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') except: pass gdaltest.runexternal(test_cli_utilities.get_ogr2ogr_path() + ' -nlt POLYGON25D tmp/poly.shp ../ogr/data/poly.shp') ds = ogr.Open('tmp/poly.shp') if ds.GetLayer(0).GetLayerDefn().GetGeomType() != ogr.wkbPolygon25D: return 'fail' ds.Destroy() ogr.GetDriverByName('ESRI Shapefile').DeleteDataSource('tmp/poly.shp') return 'success'