inasafe 5 won't run in qgis3.x
husnimubarok opened this issue · 3 comments
husnimubarok commented
Problem
inasafe run resulting error "TypeError"
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\impact_function\impact_function.py", line 1449, in run self._run()
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\utilities\profiling.py", line 126, in with_profiling ret = fn(*args, **kwargs)
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\impact_function\impact_function.py", line 1626, in _run self.pre_process()
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\utilities\profiling.py", line 126, in with_profiling ret = fn(*args, **kwargs)
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\impact_function\impact_function.py", line 1889, in pre_process layer = pre_processor['process']['function'](self)
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\processors\pre_processors.py", line 115, in earthquake_contour_preprocessor contour_path = create_smooth_contour(impact_function.hazard)
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\gis\raster\contour.py", line 272, in create_smooth_contour active_band=active_band
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\gis\raster\contour.py", line 426, in shakemap_contour set_contour_properties(output_file_path)
In file "C:/Users/husnix/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\inasafe\safe\gis\raster\contour.py", line 458, in set_contour_properties line = feature.geometry().asPolyline()
Expected Behaviour
With the same dataset, inasafe 4.3.4 and qgis 2.18 inasafe analysis working without problem
Environment
-
InaSAFE : 5
-
QGIS : 3.4 and 3.8
-
OS : Win 10 and Ubuntu 18.04
-
Data used : Pidi Jaya Earthquake
- Exposure : Pidie_Jaya_population_inaRISK_WGS84.tif
- Hazard : Pidie_Jaya_Earthquake_WGS84.tif
- Aggregation :Pidie_Jaya_Subdistrict_BPS_WGS84.shp
lucernae commented
I will look into it mas @husnimubarok
lucernae commented
Problem with multiline geometry conversion.
Full stack trace:
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gui/widgets/dock.py", line 1337, in accept
status, message = self.impact_function.run()
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/impact_function/impact_function.py", line 1449, in run
self._run()
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/utilities/profiling.py", line 126, in with_profiling
ret = fn(*args, **kwargs)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/impact_function/impact_function.py", line 1626, in _run
self.pre_process()
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/utilities/profiling.py", line 126, in with_profiling
ret = fn(*args, **kwargs)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/impact_function/impact_function.py", line 1889, in pre_process
layer = pre_processor['process']['function'](self)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/processors/pre_processors.py", line 115, in earthquake_contour_preprocessor
contour_path = create_smooth_contour(impact_function.hazard)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gis/raster/contour.py", line 272, in create_smooth_contour
active_band=active_band
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gis/raster/contour.py", line 426, in shakemap_contour
set_contour_properties(output_file_path)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gis/raster/contour.py", line 458, in set_contour_properties
line = feature.geometry().asPolyline()
TypeError: MultiLineString geometry cannot be converted to a polyline. Only single line or curve types are permitted.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gui/widgets/dock.py", line 1343, in accept
add_debug_layers_to_canvas(self.impact_function)
File "/Users/lucernae/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/inasafe/safe/gui/analysis_utilities.py", line 93, in add_debug_layers_to_canvas
hazard_keywords = impact_function.provenance['hazard_keywords']
KeyError: 'hazard_keywords'
lucernae commented
I think we can call this fixed.