TerraME / terrame

TerraME is a programming environment for spatial dynamical modelling
www.terrame.org
GNU Lesser General Public License v3.0
35 stars 13 forks source link

Adding QGIS remove layer function #2272

Closed avancinirodrigo closed 5 years ago

avancinirodrigo commented 5 years ago
avancinirodrigo commented 5 years ago

@pedro-andrade-inpe Give a look at gis documentation job, that problem is related to #2268.

pedro-andrade-inpe commented 5 years ago

@avancinirodrigo, please execute -doc with -ft and put here the error output for one tview file.

avancinirodrigo commented 5 years ago

@avancinirodrigo, please execute -doc with -ft and put here the error output for one tview file.

Processing 'amazonia.lua'
...ld-cmake/install/bin/packages/base/lua/CellularSpace.lua:1760: Error: Project '/home/developer/terrame/build-cmake/install/bin/packages/gis/data/amazonia.qgs.tview' was not found.
Stack traceback:
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1698, in main chunk
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 333, in main chunk
    Internal C file, in function error
    File '...ld-cmake/install/bin/packages/base/lua/ErrorHandling.lua', line 39, in function customError
    File '...ld-cmake/install/bin/packages/base/lua/CellularSpace.lua', line 440, in function check
    File '...ld-cmake/install/bin/packages/base/lua/CellularSpace.lua', line 1760, in function CellularSpace
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 283, in function Layer
    File '...e/build-cmake/install/bin/packages/gis/data/amazonia.lua', line 52, in main chunk
    Internal C file, in function dofile
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 332, in main chunk
    Internal C file, in function xpcall
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 332, in function _sof_
    File '...rame/build-cmake/install/bin/packages/base/lua/Utils.lua', line 565, in function _sof_
    File '...rame/build-cmake/install/bin/packages/base/lua/Utils.lua', line 934, in main chunk
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 326, in function getProjects
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 629, in function executeDoc
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1413, in main chunk
    Internal C file, in function xpcall
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1649, in function myxpcall
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1413, in main chunk
pedro-andrade-inpe commented 5 years ago

The current problem is in CellularSpace.lua. It adds .tview when the file ends with .qgs. Lines 430-433:

if type(self.project) == "File" then
    if self.project:extension() ~= "tview" then
        self.project = File(self.project..".tview")
    end

This code should be removed in order to allow working with tview and qgs.

avancinirodrigo commented 5 years ago

@pedro-andrade-inpe There is another error after to remove cellspace code about '-doc':

Building documentation for package 'gis'
Loading package 'gis'
Parsing 'data.lua'
Processing lua files
Processing 'amazonia-postgis.lua'
Processing 'amazonia.lua'
Processing 'cabecadeboi.lua'
Processing 'emas.lua'
Processing 'itaituba.lua'
Checking directory 'data'
Checking properties of data files
Processing database 'amazonia'
Processing 'amazonia-indigenous.shp'
Processing 'amazonia-limit.shp'
Processing 'amazonia-ports.shp'
...rame/build-cmake/install/bin/packages/base/lua/Utils.lua:505: Error: Argument '#1' is mandatory.
Stack traceback:
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1698, in function ft
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1682, in main chunk
    Internal C file, in function error
    File '...ld-cmake/install/bin/packages/base/lua/ErrorHandling.lua', line 39, in function customError
    File '...ld-cmake/install/bin/packages/base/lua/ErrorHandling.lua', line 353, in function mandatoryArgumentError
    File '...rame/build-cmake/install/bin/packages/base/lua/Utils.lua', line 505, in function forEachElement
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 683, in function _sof_
    File '...rame/build-cmake/install/bin/packages/base/lua/Utils.lua', line 524, in function forEachElement
    File '/home/developer/terrame/build-cmake/install/bin/lua/doc.lua', line 671, in function executeDoc
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1413, in main chunk
    Internal C file, in function xpcall
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1649, in function myxpcall
    File '...eveloper/terrame/build-cmake/install/bin/lua/terrame.lua', line 1413, in main chunk
pedro-andrade-inpe commented 5 years ago

Update src/lua/sketch.lua:

    elseif extension == "tview" and File(dataDir..name..".lua"):exists() then
            _Gtme.print("Project file '"..idx.."' does not need to be documented (a Lua file creates it)")

to

    elseif belong(extension, {"tview", "qgs"}) and File(dataDir..name..".lua"):exists() then
            _Gtme.print("Project file '"..idx.."' does not need to be documented (a Lua file creates it)")
pedro-andrade-inpe commented 5 years ago

Good job!