Skip to content

Commit

Permalink
Merge pull request #59 from johodges/master_rebase
Browse files Browse the repository at this point in the history
Master Rebase
  • Loading branch information
emanuelegissi authored Jul 24, 2023
2 parents 41e414d + df6165e commit fc697fd
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 3 deletions.
63 changes: 60 additions & 3 deletions qgis2fds_algorithm.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@
QgsProcessingParameterDefinition,
QgsProcessingParameterFeatureSink,
QgsProcessingParameterBoolean,
QgsRasterFileWriter,
QgsRasterLayer,
QgsRasterPipe,
QgsRasterProjector
)

import os
import os, sys
from .types import (
utils,
FDSCase,
Expand All @@ -41,7 +44,7 @@
Wind,
)
from . import algos

import processing

DEFAULTS = {
"chid": "terrain",
Expand All @@ -59,6 +62,7 @@
"nmesh": 1,
"cell_size": None,
"export_obst": True,
"debug": False,
}


Expand Down Expand Up @@ -331,6 +335,14 @@ def initAlgorithm(self, config=None):
self.addParameter(param)
param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)

# Define parameter: debug
defaultValue, _ = project.readBoolEntry(
"qgis2fds", "debug", DEFAULTS["debug"]
)
param = QgsProcessingParameterBoolean("debug","debug",defaultValue=defaultValue)
param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced)
self.addParameter(param)

# Output

# param = QgsProcessingParameterFeatureSink( # DEBUG FIXME
Expand Down Expand Up @@ -387,6 +399,17 @@ def processAlgorithm(self, parameters, context, feedback):
)
project.writeEntry("qgis2fds", "fds_path", fds_path)
fds_path = os.path.join(project_path, fds_path) # make abs

# Establish os specific parameters directory
if sys.platform.startswith('linux'):
pass
elif sys.platform == 'darwin':
os.environ["PROJ_LIB"]="/Applications/QGIS.app/Contents/Resources/proj"
elif (sys.platform == 'win32') or (sys.platform == 'cygwin'):
pass

# Get parameter for debug
DEBUG = self.parameterAsBool(parameters, "debug", context)

# Get parameter: pixel_size

Expand Down Expand Up @@ -435,12 +458,17 @@ def processAlgorithm(self, parameters, context, feedback):
origin = parameters.get("origin") or ""
project.writeEntry("qgis2fds", "origin", origin) # as str
if origin:
if "[" in origin:
crs_txt = origin.split('[')[1].split(']')[0]
origin_crs = QgsCoordinateReferenceSystem(crs_txt)
else:
origin_crs = project.crs()
# prevent a QGIS bug when using parameterAsPoint with crs=wgs84_crs
# the point is exported in project crs
origin = self.parameterAsPoint(parameters, "origin", context)
wgs84_origin = QgsPoint(origin)
project_to_wgs84_tr = QgsCoordinateTransform(
project.crs(), wgs84_crs, project
origin_crs, wgs84_crs, project
)
wgs84_origin.transform(project_to_wgs84_tr)

Expand Down Expand Up @@ -637,6 +665,35 @@ def processAlgorithm(self, parameters, context, feedback):
if feedback.isCanceled():
return {}

if DEBUG:
for layer_id in context.temporaryLayerStore().mapLayers():
layer = context.getMapLayer(layer_id)
name = layer.name()
if chid in name:
outname = os.path.join(project_path,"debug_" + name)
else:
outname = os.path.join(project_path,"debug_" + chid + "_" + name)
if type(layer) is QgsRasterLayer:
outname = outname + '.tif'
renderer = layer.renderer()
provider = layer.dataProvider()
pipe = QgsRasterPipe()
projector = QgsRasterProjector()
projector.setCrs(layer.crs(), layer.crs())
file_writer = QgsRasterFileWriter(outname)
file_writer.Mode(1)
width = layer.width()
height = layer.height()
layer_extent = layer.extent()
layer_crs = layer.crs()

error = file_writer.writeRaster(pipe, width, height, layer_extent, layer_crs)
else:
outname = outname + '.gpkg'
alg_params = {"INPUT": name, "OUTPUT": outname, 'LAYER_NAME': name}
processing.run("native:savefeatures", alg_params, context=context)
feedback.pushInfo("Saving %s"%(outname))

# Prepare terrain, domain, and fds_case
if export_obst:
Terrain = OBSTTerrain
Expand Down
1 change: 1 addition & 0 deletions types/domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def __init__(
dom_xb[4],
dom_xb[5],
)
m_xb = [round(x, 2) for x in m_xb]

# Calc MESH IJK
m_ijk = (
Expand Down

0 comments on commit fc697fd

Please sign in to comment.