def OracleReaderLAS(xmlFile, outputFileAbsPath, connectionString, blockTable, baseTable, srid, wkt, queryTable, queryIndex): xmlContent = """ <?xml version="1.0" encoding="utf-8"?> <Pipeline version="1.0"> <Writer type="writers.las"> <Option name="filename">""" + outputFileAbsPath + """</Option> <Filter type="filters.crop"> <Option name="polygon">""" + wkt + """</Option> <Reader type="readers.oci"> <Option name="query"> SELECT l."OBJ_ID", l."BLK_ID", l."BLK_EXTENT", l."BLK_DOMAIN", l."PCBLK_MIN_RES", l."PCBLK_MAX_RES", l."NUM_POINTS", l."NUM_UNSORTED_POINTS", l."PT_SORT_DIM", l."POINTS", b.pc FROM """ + blockTable + """ l, """ + baseTable + """ b, """ + queryTable + """ g WHERE l.obj_id = b.id AND SDO_FILTER(l.blk_extent,g.geom) = 'TRUE' AND g.id = """ + str( queryIndex) + """ </Option> <Option name="connection">""" + connectionString + """</Option> <Option name="spatialreference">EPSG:""" + str(srid) + """</Option> </Reader> </Filter> </Writer> </Pipeline> """ utils.writeToFile(xmlFile, xmlContent)
def OracleReaderStdOut(xmlFile, connectionString, blockTable, baseTable, srid, wkt, queryTable, queryIndex): xmlContent = """ <?xml version="1.0" encoding="utf-8"?> <Pipeline version="1.0"> <Writer type="writers.text"> <Option name="filename">STDOUT</Option> <Option name="order">X,Y,Z</Option> <Filter type="filters.crop"> <Option name="polygon">""" + wkt + """</Option> <Reader type="readers.oci"> <Option name="query"> SELECT l."OBJ_ID", l."BLK_ID", l."BLK_EXTENT", l."BLK_DOMAIN", l."PCBLK_MIN_RES", l."PCBLK_MAX_RES", l."NUM_POINTS", l."NUM_UNSORTED_POINTS", l."PT_SORT_DIM", l."POINTS", b.pc FROM """ + blockTable + """ l, """ + baseTable + """ b, """ + queryTable + """ g WHERE l.obj_id = b.id AND SDO_FILTER(l.blk_extent,g.geom) = 'TRUE' AND g.id = """ + str(queryIndex) + """ </Option> <Option name="connection">""" + connectionString + """</Option> <Option name="spatialreference">EPSG:""" + str(srid) + """</Option> </Reader> </Filter> </Writer> </Pipeline> """ utils.writeToFile(xmlFile, xmlContent)
def PostgreSQLWriter(xmlFile, inputFileAbsPath, connectionString, pcid, dimensionsNames, blockTable, srid, blockSize, compression): """ Create a XML file to load the data, in the given file, into the DB """ (_, _, minX, minY, minZ, _, _, _, scaleX, scaleY, scaleZ, offsetX, offsetY, offsetZ) = lasops.getPCFileDetails(inputFileAbsPath) xmlContent = """<?xml version="1.0" encoding="utf-8"?> <Pipeline version="1.0"> <Writer type="writers.pgpointcloud"> <Option name="connection">""" + connectionString + """</Option> <Option name="table">""" + blockTable + """</Option> <Option name="column">pa</Option> <Option name="srid">""" + str(srid) + """</Option> <Option name="pcid">""" + str(pcid) + """</Option> <Option name="overwrite">false</Option> <Option name="capacity">""" + str(blockSize) + """</Option> <Option name="compression">""" + compression + """</Option> <Option name="output_dims">""" + ",".join(dimensionsNames) + """</Option> <Option name="offset_x">""" + str(minX) + """</Option> <Option name="offset_y">""" + str(minY) + """</Option> <Option name="offset_z">""" + str(minZ) + """</Option> <Option name="scale_x">""" + str(scaleX) + """</Option> <Option name="scale_y">""" + str(scaleY) + """</Option> <Option name="scale_z">""" + str(scaleZ) + """</Option> <Filter type="filters.chipper"> <Option name="capacity">""" + str(blockSize) + """</Option> <Reader type="readers.las"> <Option name="filename">""" + inputFileAbsPath + """</Option> <Option name="spatialreference">EPSG:""" + str(srid) + """</Option> </Reader> </Filter> </Writer> </Pipeline> """ utils.writeToFile(xmlFile, xmlContent)
def OracleWriter(xmlFile, inputFileAbsPath, connectionString, dimensionsNames, blockTable, baseTable, srid, blockSize, compression, dimensionalOrientation, useOffsetScale): """ Create a XML file to load the data, in the given file, into the DB """ offsetScale = '' if useOffsetScale: (_, _, minX, minY, minZ, _, _, _, scaleX, scaleY, scaleZ, offsetX, offsetY, offsetZ) = lasops.getPCFileDetails(inputFileAbsPath) offsetScale = """<Option name="offset_x">""" + str(offsetX) + """</Option> <Option name="offset_y">""" + str(offsetY) + """</Option> <Option name="offset_z">""" + str(offsetZ) + """</Option> <Option name="scale_x">""" + str(scaleX) + """</Option> <Option name="scale_y">""" + str(scaleY) + """</Option> <Option name="scale_z">""" + str(scaleZ) + """</Option>""" output_dims = '' if dimensionsNames != None: output_dims = '<Option name="output_dims">' + ','.join(dimensionsNames) + '</Option>' xmlContent = """ <?xml version="1.0" encoding="utf-8"?> <Pipeline version="1.0"> <Writer type="writers.oci"> <Option name="debug">false</Option> <Option name="verbose">1</Option> <Option name="connection">""" + connectionString + """</Option> <Option name="base_table_name">""" + baseTable + """</Option> <Option name="block_table_name">""" + blockTable + """</Option> <Option name="compression">""" + str(compression).lower() + """</Option> <Option name="store_dimensional_orientation">""" + str(dimensionalOrientation).lower() + """</Option> <Option name="cloud_column_name">pc</Option> <Option name="is3d">false</Option> <Option name="solid">false</Option> <Option name="overwrite">false</Option> <Option name="disable_cloud_trigger">true</Option> <Option name="srid">""" + str(srid) + """</Option> <Option name="create_index">false</Option> <Option name="capacity">""" + str(blockSize) + """</Option> <Option name="stream_output_precision">8</Option> <Option name="pack_ignored_fields">true</Option> """ + output_dims + """ """ + offsetScale + """ <Filter type="filters.chipper"> <Option name="capacity">""" + str(blockSize) + """</Option> <Reader type="readers.las"> <Option name="filename">""" + inputFileAbsPath + """</Option> <Option name="spatialreference">EPSG:""" + str(srid) + """</Option> </Reader> </Filter> </Writer> </Pipeline> """ utils.writeToFile(xmlFile, xmlContent)
def PostgreSQLReaderLAS(xmlFile, outputFileAbsPath, connectionString, blockTable, srid, wkt): xmlContent = """ <?xml version="1.0" encoding="utf-8"?> <Pipeline version="1.0"> <Writer type="writers.las"> <Option name="filename">""" + outputFileAbsPath + """</Option> <Filter type="filters.crop"> <Option name="polygon">""" + wkt + """</Option> <Reader type="readers.pgpointcloud"> <Option name="connection">""" + connectionString + """</Option> <Option name="table">""" + blockTable + """</Option> <Option name="column">pa</Option> <Option name="spatialreference">EPSG:""" + str(srid) + """</Option> <Option name="where"> PC_Intersects(pa, ST_GeomFromEWKT('SRID=""" + str(srid) + """;""" + wkt + """')) </Option> </Reader> </Filter> </Writer> </Pipeline> """ utils.writeToFile(xmlFile, xmlContent)