mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
102 lines
3.5 KiB
Python
102 lines
3.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
***************************************************************************
|
|
i_rectify.py
|
|
------------
|
|
Date : April 2016
|
|
Copyright : (C) 2016 by Médéric Ribreux
|
|
Email : medspx at medspx dot fr
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************
|
|
"""
|
|
|
|
__author__ = 'Médéric Ribreux'
|
|
__date__ = 'April 2016'
|
|
__copyright__ = '(C) 2016, Médéric Ribreux'
|
|
|
|
# This will get replaced with a git SHA1 when you do a git archive
|
|
|
|
__revision__ = '$Format:%H$'
|
|
|
|
from .i import copyFile, multipleOutputDir
|
|
from qgis.core import QgsCoordinateReferenceSystem
|
|
from ..Grass7Utils import Grass7Utils
|
|
from processing.core.parameters import getParameterFromString
|
|
from os import path
|
|
|
|
|
|
def processCommand(alg, parameters):
|
|
# Creates a new location with the CRS
|
|
crsParam = alg.getParameterFromName('crs')
|
|
crsId = int(crsParam.value[5:])
|
|
# QgsMessageLog.logMessage('crs = {}'.format(crs), 'DEBUG', QgsMessageLog.INFO)
|
|
crs = QgsCoordinateReferenceSystem()
|
|
crs.createFromId(crsId, QgsCoordinateReferenceSystem.EpsgCrsId)
|
|
command = "g.proj proj4=\"{}\" location=TARGET".format(crs.toProj4())
|
|
alg.commands.append(command)
|
|
alg.parameters.remove(crsParam)
|
|
|
|
# Regroup rasters
|
|
rasters = alg.getParameterFromName('rasters')
|
|
rastersList = rasters.value.split(';')
|
|
alg.parameters.remove(rasters)
|
|
|
|
# Insert a i.group command
|
|
group = getParameterFromString("ParameterString|group|group of rasters|None|False|False")
|
|
group.value = alg.getTempFilename()
|
|
alg.addParameter(group)
|
|
|
|
command = 'i.group group={} input={}'.format(
|
|
group.value,
|
|
','.join([alg.exportedLayers[f] for f in rastersList])
|
|
)
|
|
alg.commands.append(command)
|
|
|
|
# Handle POINT File
|
|
gcp = alg.getParameterFromName('gcp')
|
|
extFileName = gcp.value
|
|
destPath = path.join(Grass7Utils.grassMapsetFolder(),
|
|
'PERMANENT',
|
|
'group', group.value,
|
|
'POINTS')
|
|
copyFile(alg, extFileName, destPath)
|
|
alg.parameters.remove(gcp)
|
|
|
|
# Add a target destination for our group
|
|
command = "i.target group={} location=TARGET mapset=PERMANENT".format(group.value)
|
|
alg.commands.append(command)
|
|
|
|
# remove output
|
|
output = alg.getOutputFromName('output')
|
|
alg.removeOutputFromName('output')
|
|
|
|
# Add an extension
|
|
#extension = getParameterFromString("ParameterString|extension|Output raster map(s) suffix|None|False|False")
|
|
#extension.value = "rectified"
|
|
#alg.addParameter(extension)
|
|
|
|
# modify parameters values
|
|
alg.processCommand()
|
|
|
|
# Re-add input rasters
|
|
alg.addParameter(rasters)
|
|
alg.addParameter(gcp)
|
|
alg.addParameter(crs)
|
|
|
|
# Re-add output
|
|
alg.addOutput(output)
|
|
|
|
|
|
def processOutputs(alg):
|
|
# We need to export from the TARGET location
|
|
command = "g.mapset location=TARGET mapset=PERMANENT"
|
|
alg.commands.append(command)
|
|
multipleOutputDir(alg, 'output')
|