kopia lustrzana https://github.com/OpenDroneMap/ODM
51 wiersze
2.2 KiB
Python
51 wiersze
2.2 KiB
Python
import system
|
|
|
|
def odm_orthophoto():
|
|
"""Run odm_orthophoto"""
|
|
print "\n - running orthophoto generation - " + system.now()
|
|
|
|
os.chdir(jobOptions["jobDir"])
|
|
try:
|
|
os.mkdir(jobOptions["jobDir"] + "/odm_orthophoto")
|
|
except:
|
|
pass
|
|
|
|
run("\"" + BIN_PATH + "/odm_orthophoto\" -inputFile " + jobOptions["jobDir"] + \
|
|
"-results/odm_texturing/odm_textured_model_geo.obj -logFile " + jobOptions["jobDir"] \
|
|
+ "/odm_orthophoto/odm_orthophoto_log.txt -outputFile " + jobOptions["jobDir"] \
|
|
+ "-results/odm_orthphoto.png -resolution 20.0 -outputCornerFile " + jobOptions["jobDir"] \
|
|
+ "/odm_orthphoto_corners.txt")
|
|
|
|
if "csString" not in jobOptions:
|
|
parse_coordinate_system()
|
|
|
|
geoTiffCreated = False
|
|
if ("csString" in jobOptions and
|
|
"utmEastOffset" in jobOptions and "utmNorthOffset" in jobOptions):
|
|
ulx = uly = lrx = lry = 0.0
|
|
with open(jobOptions["jobDir"] +
|
|
"/odm_orthphoto_corners.txt") as f:
|
|
for lineNumber, line in enumerate(f):
|
|
if lineNumber == 0:
|
|
tokens = line.split(' ')
|
|
if len(tokens) == 4:
|
|
ulx = float(tokens[0]) + \
|
|
float(jobOptions["utmEastOffset"])
|
|
lry = float(tokens[1]) + \
|
|
float(jobOptions["utmNorthOffset"])
|
|
lrx = float(tokens[2]) + \
|
|
float(jobOptions["utmEastOffset"])
|
|
uly = float(tokens[3]) + \
|
|
float(jobOptions["utmNorthOffset"])
|
|
|
|
print(" Creating GeoTIFF...")
|
|
sys.stdout.write(" ")
|
|
run("gdal_translate -a_ullr " + str(ulx) + " " + str(uly) + " " +
|
|
str(lrx) + " " + str(lry) + " -a_srs \"" + jobOptions["csString"] +
|
|
"\" " + jobOptions["jobDir"] + "-results/odm_orthphoto.png " +
|
|
jobOptions["jobDir"] + "-results/odm_orthphoto.tif")
|
|
geoTiffCreated = True
|
|
|
|
if not geoTiffCreated:
|
|
|
|
print " Warning: No geo-referenced orthophoto created due to missing geo-referencing or corner coordinates." |