Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

more cleaning

  • Loading branch information...
commit 9205ed1080bf5d66f286d00579855285934b9a65 1 parent 1d86dc8
@mbernasocchi mbernasocchi authored
Showing with 14,087 additions and 13,517 deletions.
  1. +2 −2 Makefile
  2. +1 −1  docs/make.bat
  3. +2 −2 docs/source/api-docs/safe.rst
  4. +12 −10 docs/source/api-docs/safe/common.rst
  5. +7 −0 docs/source/api-docs/safe/common/geodesy.rst
  6. +7 −0 docs/source/api-docs/safe/common/test_geodesy.rst
  7. +2 −2 docs/source/api-docs/safe/engine.rst
  8. +4 −4 docs/source/api-docs/safe/engine/impact_functions_for_testing.rst
  9. +7 −7 docs/source/api-docs/safe/impact_functions.rst
  10. +2 −2 docs/source/api-docs/safe/impact_functions/earthquake.rst
  11. +1 −1  docs/source/api-docs/safe/impact_functions/generic.rst
  12. +1 −1  docs/source/api-docs/safe/impact_functions/inundation.rst
  13. +8 −8 docs/source/api-docs/safe/storage.rst
  14. +18 −17 docs/source/api-docs/safe_qgis.rst
  15. +7 −0 docs/source/api-docs/safe_qgis/aggregation_attribute_dialog_base.rst
  16. +6 −6 docs/source/api-docs/safe_qgis_tests.rst
  17. +1 −1  docs/source/developer-docs/jenkins_ci.rst
  18. +2 −2 docs/source/developer-docs/platform_linux.rst
  19. +4 −4 docs/source/developer-docs/platform_windows.rst
  20. +4 −1 docs/source/user-docs/options.rst
  21. BIN  messages.mo
  22. +1 −1  pylintrc
  23. +1 −1  runguitests.bat
  24. +2 −1  safe/common/polygon.py
  25. +1 −1  safe/i18n/af/LC_MESSAGES/inasafe.po
  26. +53 −40 safe/i18n/id/LC_MESSAGES/inasafe.po
  27. +1 −1  safe/storage/core.py
  28. +11 −1 safe/storage/test_io.py
  29. +90 −0 safe_qgis/configurable_impact_functions_dialog.py
  30. +41 −0 safe_qgis/configurable_impact_functions_dialog_base.py
  31. +49 −4 safe_qgis/dock.py
  32. +4 −2 safe_qgis/dock_base.py
  33. +101 −91 safe_qgis/i18n/inasafe_af.ts
  34. BIN  safe_qgis/i18n/inasafe_id.qm
  35. +103 −92 safe_qgis/i18n/inasafe_id.ts
  36. +10 −12 safe_qgis/keywords_dialog.py
  37. +25 −32 safe_qgis/keywords_dialog_base.py
  38. +7 −1 safe_qgis/options_dialog.py
  39. +42 −36 safe_qgis/options_dialog_base.py
  40. +75 −62 safe_qgis/options_dialog_base.ui
  41. +6,646 −6,522 safe_qgis/resources.py
  42. +1 −0  safe_qgis/resources.qrc
  43. +6,646 −6,522 safe_qgis/resources_rc.py
  44. +63 −11 safe_qgis/test_dock.py
  45. +8 −7 safe_qgis/utilities.py
  46. +3 −3 scripts/run-single-test.sh
  47. +5 −3 scripts/update-website.sh
View
4 Makefile
@@ -152,7 +152,7 @@ testdata:
@echo "Updating inasafe_data - public test and demo data repository"
@echo "You should update the hash to check out a specific data version"
@echo "-----------------------------------------------------------"
- @scripts/update-test-data.sh 1ba76b17cb9f5d5bf521bdfac0a03f9929cacef3 2>&1 | tee tmp_warnings.txt; [ $${PIPESTATUS[0]} -eq 0 ] && rm -f tmp_warnings.txt || echo "Stored update warnings in tmp_warnings.txt";
+ @scripts/update-test-data.sh e550ec0edae9e6cb6bc3653e76a357dd0af559af 2>&1 | tee tmp_warnings.txt; [ $${PIPESTATUS[0]} -eq 0 ] && rm -f tmp_warnings.txt || echo "Stored update warnings in tmp_warnings.txt";
#check and show if there was an error retrieving the test data
testdata_errorcheck:
@@ -291,4 +291,4 @@ jenkins-pep8:
@echo "-----------------------------"
@echo "PEP8 issue check for Jenkins"
@echo "-----------------------------"
- @pep8 --repeat --ignore=E203 --exclude docs,odict.py,keywords_dialog_base.py,dock_base.py,options_dialog_base.py,resources.py,resources_rc.py,help_base.py,xml_tools.py,system_tools.py,data_audit.py,data_audit_wrapper.py,impact_functions_doc_base.py . > pep8.log || :
+ @pep8 --repeat --ignore=E203 --exclude docs,odict.py,keywords_dialog_base.py,dock_base.py,options_dialog_base.py,resources.py,resources_rc.py,help_base.py,xml_tools.py,system_tools.py,data_audit.py,data_audit_wrapper.py,impact_functions_doc_base.py,configurable_impact_functions_dialog_base.py . > pep8.log || :
View
2  docs/make.bat
@@ -5,7 +5,7 @@ REM Command file for Sphinx documentation
path %PATH%;"%OSGEO4W_ROOT%\apps\Python25\Scripts\"
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\\apps\\qgis\\python;
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\\apps\\Python25\\Lib\\site-packages
-set QGISPATH=%OSGEO4W_ROOT%\apps\qgis
+set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
echo %PYTHONPATH%
View
4 docs/source/api-docs/safe.rst
@@ -5,9 +5,9 @@ Package::safe
:maxdepth: 2
safe/api
- safe/test
safe/storage
- safe/i18n
safe/engine
safe/impact_functions
+ safe/i18n
+ safe/test
safe/common
View
22 docs/source/api-docs/safe/common.rst
@@ -4,17 +4,19 @@ Package::safe.common
.. toctree::
:maxdepth: 2
- common/utilities
- common/interpolation1d
- common/test_polygon
- common/dynamic_translations
- common/interpolation2d
- common/test_numerics
+ common/geodesy
+ common/tables
common/exceptions
- common/polygon
+ common/numerics
common/testing
+ common/polygon
common/test_tables
- common/numerics
- common/tables
- common/test_interpolate
+ common/interpolation2d
+ common/utilities
+ common/test_polygon
common/version
+ common/test_interpolate
+ common/dynamic_translations
+ common/test_numerics
+ common/interpolation1d
+ common/test_geodesy
View
7 docs/source/api-docs/safe/common/geodesy.rst
@@ -0,0 +1,7 @@
+Module: safe.common.geodesy
+============================
+
+.. automodule:: safe.common.geodesy
+ :members:
+
+This module forms part of the `InaSAFE <http://inasafe.org>`_ tool.
View
7 docs/source/api-docs/safe/common/test_geodesy.rst
@@ -0,0 +1,7 @@
+Module: safe.common.test_geodesy
+=================================
+
+.. automodule:: safe.common.test_geodesy
+ :members:
+
+This module forms part of the `InaSAFE <http://inasafe.org>`_ tool.
View
4 docs/source/api-docs/safe/engine.rst
@@ -4,8 +4,8 @@ Package::safe.engine
.. toctree::
:maxdepth: 2
- engine/utilities
- engine/interpolation
engine/test_engine
+ engine/interpolation
+ engine/utilities
engine/core
engine/impact_functions_for_testing
View
8 docs/source/api-docs/safe/engine/impact_functions_for_testing.rst
@@ -4,11 +4,11 @@ Package::safe.engine.impact_functions_for_testing
.. toctree::
:maxdepth: 2
- impact_functions_for_testing/NEXIS_building_impact_model
+ impact_functions_for_testing/BNPB_earthquake_guidelines
+ impact_functions_for_testing/unspecific_building_impact_model
impact_functions_for_testing/flood_road_impact
impact_functions_for_testing/allen_fatality_model
- impact_functions_for_testing/unspecific_building_impact_model
- impact_functions_for_testing/empirical_fatality_model
impact_functions_for_testing/general_ashload_impact
- impact_functions_for_testing/BNPB_earthquake_guidelines
+ impact_functions_for_testing/empirical_fatality_model
impact_functions_for_testing/HKV_flood_study
+ impact_functions_for_testing/NEXIS_building_impact_model
View
14 docs/source/api-docs/safe/impact_functions.rst
@@ -4,16 +4,16 @@ Package::safe.impact_functions
.. toctree::
:maxdepth: 2
- impact_functions/utilities
- impact_functions/mappings
+ impact_functions/test_plugin_core
+ impact_functions/test_real_impact_functions
impact_functions/test_mappings
- impact_functions/test_plugins
+ impact_functions/mappings
impact_functions/styles
+ impact_functions/utilities
+ impact_functions/test_plugins
impact_functions/core
- impact_functions/test_plugin_core
- impact_functions/test_real_impact_functions
+ impact_functions/tephra
impact_functions/generic
impact_functions/inundation
- impact_functions/earthquake
- impact_functions/tephra
impact_functions/volcanic
+ impact_functions/earthquake
View
4 docs/source/api-docs/safe/impact_functions/earthquake.rst
@@ -4,7 +4,7 @@ Package::safe.impact_functions.earthquake
.. toctree::
:maxdepth: 2
- earthquake/padang_building_impact_model
- earthquake/itb_building_impact_model
earthquake/earthquake_impact_on_women
+ earthquake/itb_building_impact_model
earthquake/itb_earthquake_fatality_model
+ earthquake/padang_building_impact_model
View
2  docs/source/api-docs/safe/impact_functions/generic.rst
@@ -4,5 +4,5 @@ Package::safe.impact_functions.generic
.. toctree::
:maxdepth: 2
- generic/categorised_hazard_population
generic/categorised_hazard_building_impact
+ generic/categorised_hazard_population
View
2  docs/source/api-docs/safe/impact_functions/inundation.rst
@@ -4,6 +4,6 @@ Package::safe.impact_functions.inundation
.. toctree::
:maxdepth: 2
- inundation/flood_population_evacuation_polygon_hazard
inundation/flood_population_evacuation
inundation/flood_OSM_building_impact
+ inundation/flood_population_evacuation_polygon_hazard
View
16 docs/source/api-docs/safe/storage.rst
@@ -4,15 +4,15 @@ Package::safe.storage
.. toctree::
:maxdepth: 2
- storage/vector
- storage/utilities
- storage/raster
- storage/test_clipping
storage/projection
+ storage/test_io
+ storage/test_clipping
+ storage/utilities_test
storage/clipping
+ storage/layer
+ storage/test_vector
storage/test_utilities
+ storage/raster
+ storage/utilities
+ storage/vector
storage/core
- storage/test_vector
- storage/layer
- storage/test_io
- storage/utilities_test
View
35 docs/source/api-docs/safe_qgis.rst
@@ -4,27 +4,28 @@ Package::safe_qgis
.. toctree::
:maxdepth: 2
- safe_qgis/keywords_dialog
- safe_qgis/impact_functions_doc_base
- safe_qgis/utilities
safe_qgis/options_dialog_base
- safe_qgis/impact_calculator_thread
- safe_qgis/options_dialog
- safe_qgis/map
- safe_qgis/resources
safe_qgis/clipper
- safe_qgis/dock_base
- safe_qgis/exceptions
- safe_qgis/dock
- safe_qgis/keyword_io
- safe_qgis/resources_rc
- safe_qgis/keywords_dialog_base
- safe_qgis/help_base
safe_qgis/impact_calculator
- safe_qgis/help
+ safe_qgis/keywords_dialog_base
+ safe_qgis/resources_rc
+ safe_qgis/dock
safe_qgis/odict
- safe_qgis/qgis_interface
+ safe_qgis/help
safe_qgis/impact_functions_doc
+ safe_qgis/impact_calculator_thread
+ safe_qgis/exceptions
+ safe_qgis/dock_base
+ safe_qgis/keywords_dialog
+ safe_qgis/resources
+ safe_qgis/keyword_io
safe_qgis/utilities_test
- safe_qgis/safe_interface
+ safe_qgis/help_base
safe_qgis/plugin
+ safe_qgis/aggregation_attribute_dialog_base
+ safe_qgis/safe_interface
+ safe_qgis/impact_functions_doc_base
+ safe_qgis/options_dialog
+ safe_qgis/utilities
+ safe_qgis/qgis_interface
+ safe_qgis/map
View
7 docs/source/api-docs/safe_qgis/aggregation_attribute_dialog_base.rst
@@ -0,0 +1,7 @@
+Module: safe_qgis.aggregation_attribute_dialog_base
+====================================================
+
+.. automodule:: safe_qgis.aggregation_attribute_dialog_base
+ :members:
+
+This module forms part of the `InaSAFE <http://inasafe.org>`_ tool.
View
12 docs/source/api-docs/safe_qgis_tests.rst
@@ -4,15 +4,15 @@ Package::safe_qgis_tests
.. toctree::
:maxdepth: 2
- safe_qgis_tests/test_qgis_environment
- safe_qgis_tests/test_map
- safe_qgis_tests/test_utilities
- safe_qgis_tests/test_impact_calculator
safe_qgis_tests/test_clipper
- safe_qgis_tests/test_dock
+ safe_qgis_tests/test_qgis_environment
safe_qgis_tests/test_keyword_io
safe_qgis_tests/test_plugin
- safe_qgis_tests/test_safe_interface
safe_qgis_tests/test_keywords_dialog
+ safe_qgis_tests/test_map
+ safe_qgis_tests/test_impact_calculator
+ safe_qgis_tests/test_dock
safe_qgis_tests/test_impact_functions_doc
+ safe_qgis_tests/test_utilities
+ safe_qgis_tests/test_safe_interface
safe_qgis_tests/test_help
View
2  docs/source/developer-docs/jenkins_ci.rst
@@ -168,7 +168,7 @@ Here is a log of the options we set for the Jenkins job:
export PYTHONPATH=/usr/local/qgis1.8/share/qgis/python/
export LD_LIBRARY_PATH=/usr/local/qgis1.8/lib
- export QGISPATH=/usr/local/qgis1.8/
+ export QGIS_PREFIX_PATH=/usr/local/qgis1.8/
# Make sure data dir is current and synced it its git clone
scripts/update-test-data.sh
View
4 docs/source/developer-docs/platform_linux.rst
@@ -84,11 +84,11 @@ QGIS installed in a non-standard location
.........................................
For running unit tests that need QGIS, you may need to adjust *PYTHONPATH* and
-*QGISPATH* if QGIS is running in a non standard location. For example with
+*QGIS_PREFIX_PATH* if QGIS is running in a non standard location. For example with
QGIS built from source into /usr/local (and python bindings global install
option disabled), you could run these commands (or add them to your ~/.bashrc)::
- export QGISPATH=/usr/local
+ export QGIS_PREFIX_PATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/usr/local/share/qgis/python/
.. note:: The above can be set within Eclipse's project properties if you are
View
8 docs/source/developer-docs/platform_windows.rst
@@ -187,11 +187,11 @@ following listing in <QGIS Install Dir>/bin/python-shell.bat::
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages
- set QGISPATH=%OSGEO4W_ROOT%\apps\qgis
+ set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
cd "%HOMEPATH%\.qgis\python\plugins\inasafe-dev"
start "Quantum GIS Shell" /B "cmd.exe" %*
-.. note:: The QGISPATH environment variable should be unquoted!.
+.. note:: The QGIS_PREFIX_PATH environment variable should be unquoted!.
.. note:: You may need to replace PROGRA~1 above with PROGRA~2 if you are
on 64bit windows.
@@ -408,7 +408,7 @@ environment has been imported. Here are the typical contexts of the file::
path %PATH%;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\grass\grass-6.4.2\lib
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\qgis\python;
set PYTHONPATH=%PYTHONPATH%;%OSGEO4W_ROOT%\apps\Python27\Lib\site-packages
- set QGISPATH=%OSGEO4W_ROOT%\apps\qgis
+ set QGIS_PREFIX_PATH=%OSGEO4W_ROOT%\apps\qgis
"C:\Progra~2\eclipse\eclipse.exe"
.. note:: Use the path where your eclipse was extracted. Also note that PROGRA~2 may
@@ -484,7 +484,7 @@ You will be returned to the Python Interpreters list and should see an entry for
In the dialog that appears
-:guilabel:`Name` : :kbd:`QGISPATH`
+:guilabel:`Name` : :kbd:`QGIS_PREFIX_PATH`
:guilabel:`Value` : :kbd:`C:\\PROGRA~1\\QUANTU~1\\apps\\qgis`
Then click ok to close the environment variable editor.
View
5 docs/source/user-docs/options.rst
@@ -37,9 +37,12 @@ The following options are available on the :guilabel:`Options Dialog`:
option will cause QGIS to turn off the exposure layer used when InaSAFE
completes the current analysis. You can re-enable the layer visibility
again by checking its checkbox in the legend.
-* :guilabel:`Hide exposure layer on scenario estimate completion` : This
+* :guilabel:`Clip datasets to visible extent before analysis` : This
option will cause QGIS to clip hazard and exposure layers to the currently
visible extent on the map canvas.
+* :guilabel:`Show intermediate layers generated by postprocessing` : This
+ option will cause QGIS to show the intermediate files generated by the
+ postprocessing steps in the map canvas.
* :guilabel:`Keyword cache for remote datasources` : This option is used to
determine where keywords are stored for datasets where it is not possible
to write them into a .keywords file. See :doc:`keywords` for more information
View
BIN  messages.mo
Binary file not shown
View
2  pylintrc
@@ -35,7 +35,7 @@ profile=no
# Add files or directories to the blacklist. They should be base names, not
# paths.
-ignore=odict.py,help_base.py,keywords_dialog_base.py,options_dialog_base.py,dock_base.py,resources.py,resources_rc.py,impact_functions_doc_base.py
+ignore=odict.py,help_base.py,keywords_dialog_base.py,options_dialog_base.py,dock_base.py,resources.py,resources_rc.py,impact_functions_doc_base.py,configurable_impact_functions_dialog_base.py
# Pickle collected data for later comparisons.
persistent=yes
View
2  runguitests.bat
@@ -1 +1 @@
-nosetests -v --with-id --with-coverage --cover-package=gui gui
+nosetests -v --with-id --with-coverage --cover-package=gui
View
3  safe/common/polygon.py
@@ -133,7 +133,8 @@ def separate_points_by_polygon(points, polygon,
raise PolygonInputError(msg)
# Get polygon extents to rule out segments that
- # are outside its bounding box
+ # are outside its bounding box. This is a very important
+ # optimisation
if polygon_bbox is None:
minpx = min(polygon[:, 0])
maxpx = max(polygon[:, 0])
View
2  safe/i18n/af/LC_MESSAGES/inasafe.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-09-28 15:41+0700\n"
+"POT-Creation-Date: 2012-10-03 10:25+0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
View
93 safe/i18n/id/LC_MESSAGES/inasafe.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-09-28 15:41+0700\n"
+"POT-Creation-Date: 2012-10-03 10:25+0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,9 +16,6 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Language: id_ID\n"
-"X-Source-Language: en\n"
#: storage/test_io.py:1648 storage/test_io.py:1719 storage/test_io.py:1721
#: storage/test_io.py:1712 storage/test_io.py:1713 storage/test_io.py:1739
@@ -1450,7 +1447,8 @@ msgstr "Bangunan DKI"
#: safe/common/dynamic_translations.py:53
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:52
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:53
-#: safe/common/dynamic_translations.py:52 safe/common/dynamic_translations.py:53
+#: safe/common/dynamic_translations.py:52
+#: safe/common/dynamic_translations.py:53
msgid "Jakarta 2007 flood"
msgstr "Banjir di Jakarta seperti tahun 2007"
@@ -1502,7 +1500,8 @@ msgstr "Penduduk Jakarta"
#: storage/dynamic_translations.py:67 common/dynamic_translations.py:67
#: common/dynamic_translations.py:74 safe/common/dynamic_translations.py:74
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:74
-#: safe/common/dynamic_translations.py:75 safe/common/dynamic_translations.py:75
+#: safe/common/dynamic_translations.py:75
+#: safe/common/dynamic_translations.py:75
msgid "Flood Depth (design) Jakarta"
msgstr "Kedalaman banjir Jakarta (desain)"
@@ -1512,7 +1511,8 @@ msgstr "Kedalaman banjir Jakarta (desain)"
#: storage/dynamic_translations.py:68 common/dynamic_translations.py:68
#: common/dynamic_translations.py:75 safe/common/dynamic_translations.py:75
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:75
-#: safe/common/dynamic_translations.py:76 safe/common/dynamic_translations.py:76
+#: safe/common/dynamic_translations.py:76
+#: safe/common/dynamic_translations.py:76
msgid "Flood Depth (current) Jakarta"
msgstr "Kedalaman banjir Jakarta (saat ini)"
@@ -1529,7 +1529,8 @@ msgstr "Gempa Yogyakarta 2006"
#: storage/dynamic_translations.py:70 common/dynamic_translations.py:70
#: common/dynamic_translations.py:79 safe/common/dynamic_translations.py:79
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:79
-#: safe/common/dynamic_translations.py:80 safe/common/dynamic_translations.py:80
+#: safe/common/dynamic_translations.py:80
+#: safe/common/dynamic_translations.py:80
msgid "Indonesian Earthquake Hazard Map"
msgstr "Peta Rawan Gempa Indonesia"
@@ -1574,9 +1575,10 @@ msgstr "Bangunan OSM"
#: storage/titles.py:47 storage/titles.py:56 storage/titles.py:57
#: storage/titles.py:60 storage/titles.py:65 storage/titles.py:66
#: storage/titles.py:68 storage/titles.py:70 storage/titles.py:71
-#: storage/titles.py:73 storage/titles.py:78 storage/dynamic_translations.py:87
-#: common/dynamic_translations.py:87 common/dynamic_translations.py:104
-#: common/dynamic_translations.py:105 safe/common/dynamic_translations.py:105
+#: storage/titles.py:73 storage/titles.py:78
+#: storage/dynamic_translations.py:87 common/dynamic_translations.py:87
+#: common/dynamic_translations.py:104 common/dynamic_translations.py:105
+#: safe/common/dynamic_translations.py:105
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:105
#: safe/common/dynamic_translations.py:106
#: safe/common/dynamic_translations.py:106
@@ -1586,9 +1588,10 @@ msgstr "Sekolah AIBEP"
#: storage/titles.py:48 storage/titles.py:57 storage/titles.py:58
#: storage/titles.py:61 storage/titles.py:66 storage/titles.py:67
#: storage/titles.py:69 storage/titles.py:71 storage/titles.py:72
-#: storage/titles.py:74 storage/titles.py:79 storage/dynamic_translations.py:88
-#: common/dynamic_translations.py:88 common/dynamic_translations.py:105
-#: common/dynamic_translations.py:106 safe/common/dynamic_translations.py:106
+#: storage/titles.py:74 storage/titles.py:79
+#: storage/dynamic_translations.py:88 common/dynamic_translations.py:88
+#: common/dynamic_translations.py:105 common/dynamic_translations.py:106
+#: safe/common/dynamic_translations.py:106
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:106
#: safe/common/dynamic_translations.py:107
#: safe/common/dynamic_translations.py:107
@@ -1643,9 +1646,10 @@ msgstr "Sekolah Jakarta"
#: storage/titles.py:64 storage/titles.py:65 storage/titles.py:66
#: storage/titles.py:69 storage/titles.py:74 storage/titles.py:75
#: storage/titles.py:77 storage/titles.py:79 storage/titles.py:80
-#: storage/titles.py:82 storage/titles.py:87 storage/dynamic_translations.py:97
-#: common/dynamic_translations.py:97 common/dynamic_translations.py:114
-#: common/dynamic_translations.py:115 safe/common/dynamic_translations.py:115
+#: storage/titles.py:82 storage/titles.py:87
+#: storage/dynamic_translations.py:97 common/dynamic_translations.py:97
+#: common/dynamic_translations.py:114 common/dynamic_translations.py:115
+#: safe/common/dynamic_translations.py:115
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:115
#: safe/common/dynamic_translations.py:116
#: safe/common/dynamic_translations.py:116
@@ -1655,9 +1659,10 @@ msgstr "Bangunan industri Jakarta"
#: storage/titles.py:65 storage/titles.py:66 storage/titles.py:67
#: storage/titles.py:70 storage/titles.py:75 storage/titles.py:76
#: storage/titles.py:78 storage/titles.py:80 storage/titles.py:81
-#: storage/titles.py:83 storage/titles.py:88 storage/dynamic_translations.py:98
-#: common/dynamic_translations.py:98 common/dynamic_translations.py:115
-#: common/dynamic_translations.py:116 safe/common/dynamic_translations.py:116
+#: storage/titles.py:83 storage/titles.py:88
+#: storage/dynamic_translations.py:98 common/dynamic_translations.py:98
+#: common/dynamic_translations.py:115 common/dynamic_translations.py:116
+#: safe/common/dynamic_translations.py:116
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:116
#: safe/common/dynamic_translations.py:117
#: safe/common/dynamic_translations.py:117
@@ -1667,9 +1672,10 @@ msgstr "Daerah industri Jakarta"
#: storage/titles.py:66 storage/titles.py:67 storage/titles.py:68
#: storage/titles.py:71 storage/titles.py:76 storage/titles.py:77
#: storage/titles.py:79 storage/titles.py:81 storage/titles.py:82
-#: storage/titles.py:84 storage/titles.py:89 storage/dynamic_translations.py:99
-#: common/dynamic_translations.py:99 common/dynamic_translations.py:116
-#: common/dynamic_translations.py:117 safe/common/dynamic_translations.py:117
+#: storage/titles.py:84 storage/titles.py:89
+#: storage/dynamic_translations.py:99 common/dynamic_translations.py:99
+#: common/dynamic_translations.py:116 common/dynamic_translations.py:117
+#: safe/common/dynamic_translations.py:117
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:117
#: safe/common/dynamic_translations.py:118
#: safe/common/dynamic_translations.py:118
@@ -2001,8 +2007,8 @@ msgid "Estimated fatalities"
msgstr "Perkiraan korban jiwa"
#: storage/titles.py:64 storage/titles.py:66 storage/titles.py:67
-#: storage/titles.py:69 storage/titles.py:74 storage/dynamic_translations.py:83
-#: common/dynamic_translations.py:83
+#: storage/titles.py:69 storage/titles.py:74
+#: storage/dynamic_translations.py:83 common/dynamic_translations.py:83
msgid "Lembang fault scenario"
msgstr "Skenario sesar Lembang"
@@ -2170,17 +2176,17 @@ msgstr "Apakah fasilitas yang tersedia cukup untuk membantu %i ibu hamil?"
msgid "Mid"
msgstr "Sedang"
-#: storage/titles.py:51 storage/titles.py:56 storage/dynamic_translations.py:65
-#: common/dynamic_translations.py:65 common/dynamic_translations.py:72
-#: safe/common/dynamic_translations.py:72
+#: storage/titles.py:51 storage/titles.py:56
+#: storage/dynamic_translations.py:65 common/dynamic_translations.py:65
+#: common/dynamic_translations.py:72 safe/common/dynamic_translations.py:72
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:72
#: safe/common/dynamic_translations.py:72
msgid "People"
msgstr "Orang"
-#: storage/titles.py:52 storage/titles.py:57 storage/dynamic_translations.py:66
-#: common/dynamic_translations.py:66 common/dynamic_translations.py:73
-#: safe/common/dynamic_translations.py:73
+#: storage/titles.py:52 storage/titles.py:57
+#: storage/dynamic_translations.py:66 common/dynamic_translations.py:66
+#: common/dynamic_translations.py:73 safe/common/dynamic_translations.py:73
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:73
#: safe/common/dynamic_translations.py:73
msgid "people"
@@ -2317,8 +2323,8 @@ msgstr ""
#: safe/impact_functions/core.py:352 safe/impact_functions/core.py:352
#, python-format
msgid ""
-"In the event of <i>%(hazard)s</i> how many <i>%(exposure)s</i> might "
-"<i>%(impact)s</i>"
+"In the event of <i>%(hazard)s</i> how many <i>%(exposure)s</i> might <i>"
+"%(impact)s</i>"
msgstr ""
"Apabila terjadi <i>%(hazard)s</i> berapa banyak <i>%(exposure)s</i> yang "
"mungkin <i>%(impact)s</i>"
@@ -2421,34 +2427,39 @@ msgstr "Banjir di Jakarta di daerah identifikas sebagai rawan banjir"
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:97
#: safe/common/dynamic_translations.py:77
#: safe/common/dynamic_translations.py:98
-#: safe/common/dynamic_translations.py:77 safe/common/dynamic_translations.py:98
+#: safe/common/dynamic_translations.py:77
+#: safe/common/dynamic_translations.py:98
msgid "An earthquake in Yogyakarta like in 2006"
msgstr "Gempabumi di Yogyakarta seperti 2006"
#: common/dynamic_translations.py:81 safe/common/dynamic_translations.py:81
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:81
-#: safe/common/dynamic_translations.py:82 safe/common/dynamic_translations.py:82
+#: safe/common/dynamic_translations.py:82
+#: safe/common/dynamic_translations.py:82
msgid "A tsunami in Maumere (Mw 8.1)"
msgstr "Tsunami di Maumere (Mw 8.1)"
#: common/dynamic_translations.py:82 common/dynamic_translations.py:83
#: safe/common/dynamic_translations.py:83
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:83
-#: safe/common/dynamic_translations.py:84 safe/common/dynamic_translations.py:84
+#: safe/common/dynamic_translations.py:84
+#: safe/common/dynamic_translations.py:84
msgid "An earthquake at the Sumatran fault (Mw 7.8)"
msgstr "Gempabumi di sesar Sumatra (Mw 7.8)"
#: common/dynamic_translations.py:88 common/dynamic_translations.py:89
#: safe/common/dynamic_translations.py:89
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:89
-#: safe/common/dynamic_translations.py:90 safe/common/dynamic_translations.py:90
+#: safe/common/dynamic_translations.py:90
+#: safe/common/dynamic_translations.py:90
msgid "An earthquake at the Mentawai fault (Mw 9.0)"
msgstr "Gempabumi di sesar Mentawai (Mw 9.0)"
#: common/dynamic_translations.py:94 common/dynamic_translations.py:95
#: safe/common/dynamic_translations.py:95
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:95
-#: safe/common/dynamic_translations.py:96 safe/common/dynamic_translations.py:96
+#: safe/common/dynamic_translations.py:96
+#: safe/common/dynamic_translations.py:96
msgid "An earthquake in Padang like in 2009"
msgstr "Gempabumi di Padang seperti 2009"
@@ -2462,7 +2473,8 @@ msgstr "Gempabumi di sesar Lembang"
#: common/dynamic_translations.py:82 safe/common/dynamic_translations.py:82
#: scripts/inasafe-dev/safe/common/dynamic_translations.py:82
-#: safe/common/dynamic_translations.py:83 safe/common/dynamic_translations.py:83
+#: safe/common/dynamic_translations.py:83
+#: safe/common/dynamic_translations.py:83
msgid "A tsunami in Padang (Mw 8.8)"
msgstr "Tsunami di Padang (Mw 8.8)"
@@ -2697,7 +2709,8 @@ msgstr "Penduduk perlu evakuasi kalau banjir lebih dari %(eps).1f m"
msgid "People in %(lo).1f m to %(hi).1f m of water: %(val)i"
msgstr "Orang-orang di %(lo).1f m ke %(hi).1f m air: %(val)i"
-#: safe/common/dynamic_translations.py:74 safe/common/dynamic_translations.py:74
+#: safe/common/dynamic_translations.py:74
+#: safe/common/dynamic_translations.py:74
msgid "People in Jakarta"
msgstr "Warga di Jakarta"
View
2  safe/storage/core.py
@@ -24,7 +24,7 @@ def read_layer(filename):
_, ext = os.path.splitext(filename)
if ext in ['.asc', '.tif', '.nc']:
return Raster(filename)
- elif ext in ['.shp', '.gml']:
+ elif ext in ['.shp', '.sqlite']:
return Vector(filename)
else:
msg = ('Could not read %s. '
View
12 safe/storage/test_io.py
@@ -218,6 +218,15 @@ def test_reading_and_writing_of_vector_point_data(self):
test_reading_and_writing_of_vector_point_data.slow = True
+ def Xtest_reading_and_writing_of_sqlite_vector_data(self):
+ """SQLite vector data can be read and written correctly
+ """
+
+ # First test that some error conditions are caught
+ filename = '%s/%s' % (TESTDATA, 'lembang_osm_20121003.sqlite')
+ L = read_layer(filename)
+ print L.get_attribute_names()
+
def test_analysis_of_vector_data_top_N(self):
"""Analysis of vector data - get top N of an attribute
"""
@@ -2169,6 +2178,7 @@ def Xtest_reading_and_writing_of_multiband_rasters(self):
# More...
if __name__ == '__main__':
- suite = unittest.makeSuite(Test_IO, 'test')
+ suite = unittest.makeSuite(Test_IO,
+ 'test_reading_and_writing_of_sqlite_vector_data')
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)
View
90 safe_qgis/configurable_impact_functions_dialog.py
@@ -0,0 +1,90 @@
+"""
+InaSAFE Disaster risk assessment tool developed by AusAid -
+**Impact Functions Dialog.**
+
+Contact : ole.moller.nielsen@gmail.com
+
+.. note:: 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__ = 'oz@tanoshiistudio.com'
+__version__ = '0.5.0'
+__revision__ = '$Format:%H$'
+__date__ = '17/09/2012'
+__copyright__ = ('Copyright 2012, Australia Indonesia Facility for '
+ 'Disaster Reduction')
+
+import ast
+from PyQt4 import (QtGui, QtCore)
+from configurable_impact_functions_dialog_base import (
+ Ui_configurableImpactFunctionsDialogBase)
+
+try:
+ _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+ _fromUtf8 = lambda s: s
+
+
+class ConfigurableImpactFunctionsDialog(QtGui.QDialog,
+ Ui_configurableImpactFunctionsDialogBase):
+ """ConfigurableImpactFunctions Dialog for InaSAFE."""
+
+ def __init__(self, theParent=None):
+ """Constructor for the dialog.
+
+ This dialog will show the user the form for editing
+ impact functions parameters if any.
+
+ Args:
+ * theParent - Optional widget to use as parent
+ Returns:
+ not applicable
+ Raises:
+ no exceptions explicitly raised
+ """
+ QtGui.QDialog.__init__(self, theParent)
+ self.setupUi(self)
+
+ def buildFormFromImpactFunctionsParameter(self, theFunction, params):
+ """we build a form from impact functions parameter
+
+ .. note:: see http://tinyurl.com/pyqt-differences
+
+ Args:
+ theFunction - theFunction to be modified
+ params - parameters to be edited
+ Returns:
+ not applicable
+ """
+ self.theFunction = theFunction
+ self.formItemCounters = 0
+ self.keys = params.keys()
+ for key in self.keys:
+ self._addFormItem(key, params[key])
+
+ def _addFormItem(self, key, data):
+ label = QtGui.QLabel(self.formLayoutWidget)
+ label.setObjectName(_fromUtf8(key + "Label"))
+ label.setText(key)
+ self.editableImpactFunctionsFormLayout.setWidget(self.formItemCounters,
+ QtGui.QFormLayout.LabelRole, label)
+ lineEdit = QtGui.QLineEdit(self.formLayoutWidget)
+ lineEdit.setText(str(data))
+ lineEdit.setObjectName(_fromUtf8(key + "LineEdit"))
+ self.editableImpactFunctionsFormLayout.setWidget(self.formItemCounters,
+ QtGui.QFormLayout.FieldRole, lineEdit)
+ self.formItemCounters += 1
+
+ def accept(self):
+ func = self.theFunction
+ for key in self.keys:
+ lineEdit = self.findChild(QtGui.QLineEdit,
+ _fromUtf8(key + "LineEdit"))
+ lineEditText = lineEdit.text()
+ convText = str(lineEditText)
+ func.parameters[key] = ast.literal_eval(convText)
+ self.close()
View
41 safe_qgis/configurable_impact_functions_dialog_base.py
@@ -0,0 +1,41 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'configurable_impact_functions_dialog_base.ui'
+#
+# Created: Tue Sep 25 16:15:59 2012
+# by: PyQt4 UI code generator 4.9.1
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+ _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+ _fromUtf8 = lambda s: s
+
+class Ui_configurableImpactFunctionsDialogBase(object):
+ def setupUi(self, configurableImpactFunctionsDialogBase):
+ configurableImpactFunctionsDialogBase.setObjectName(_fromUtf8("configurableImpactFunctionsDialogBase"))
+ configurableImpactFunctionsDialogBase.resize(594, 391)
+ self.editableImpactFunctionsButtonBox = QtGui.QDialogButtonBox(configurableImpactFunctionsDialogBase)
+ self.editableImpactFunctionsButtonBox.setGeometry(QtCore.QRect(30, 350, 541, 32))
+ self.editableImpactFunctionsButtonBox.setOrientation(QtCore.Qt.Horizontal)
+ self.editableImpactFunctionsButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save)
+ self.editableImpactFunctionsButtonBox.setObjectName(_fromUtf8("editableImpactFunctionsButtonBox"))
+ self.formLayoutWidget = QtGui.QWidget(configurableImpactFunctionsDialogBase)
+ self.formLayoutWidget.setGeometry(QtCore.QRect(10, 10, 561, 331))
+ self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget"))
+ self.editableImpactFunctionsFormLayout = QtGui.QFormLayout(self.formLayoutWidget)
+ self.editableImpactFunctionsFormLayout.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow)
+ self.editableImpactFunctionsFormLayout.setMargin(0)
+ self.editableImpactFunctionsFormLayout.setObjectName(_fromUtf8("editableImpactFunctionsFormLayout"))
+
+ self.retranslateUi(configurableImpactFunctionsDialogBase)
+ QtCore.QObject.connect(self.editableImpactFunctionsButtonBox, QtCore.SIGNAL(_fromUtf8("accepted()")), configurableImpactFunctionsDialogBase.accept)
+ QtCore.QObject.connect(self.editableImpactFunctionsButtonBox, QtCore.SIGNAL(_fromUtf8("rejected()")), configurableImpactFunctionsDialogBase.reject)
+ QtCore.QMetaObject.connectSlotsByName(configurableImpactFunctionsDialogBase)
+
+ def retranslateUi(self, configurableImpactFunctionsDialogBase):
+ configurableImpactFunctionsDialogBase.setWindowTitle(QtGui.QApplication.translate("configurableImpactFunctionsDialogBase", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
+
View
53 safe_qgis/dock.py
@@ -14,7 +14,7 @@
from safe.common.utilities import temp_dir
__author__ = 'tim@linfiniti.com'
-__version__ = '0.5.0'
+__version__ = '0.5.1'
__revision__ = '$Format:%H$'
__date__ = '10/01/2011'
__copyright__ = ('Copyright 2012, Australia Indonesia Facility for '
@@ -47,6 +47,7 @@
getOptimalExtent,
getBufferedExtent,
internationalisedNames,
+ getSafeImpactFunctions,
writeKeywordsToFile)
from safe_qgis.keyword_io import KeywordIO
from safe_qgis.clipper import clipLayer
@@ -62,8 +63,11 @@
setVectorStyle,
setRasterStyle,
qgisVersion)
+from safe_qgis.configurable_impact_functions_dialog import\
+ ConfigurableImpactFunctionsDialog
from safe_qgis.keywords_dialog import KeywordsDialog
+
# Don't remove this even if it is flagged as unused by your ide
# it is needed for qrc:/ url resolution. See Qt Resources docs.
import safe_qgis.resources # pylint: disable=W0611
@@ -178,9 +182,14 @@ def readSettings(self):
# whether to clip hazard and exposure layers to the viewport
myFlag = mySettings.value(
- 'inasafe/clipToViewport', True).toBool()
+ 'inasafe/clipToViewport', True).toBool()
self.clipToViewport = myFlag
+ # whether to show or not postprocessing generated layers
+ myFlag = mySettings.value(
+ 'inasafe/showPostProcessingLayers', False).toBool()
+ self.showPostProcessingLayers = myFlag
+
self.getLayers()
def connectLayerListener(self):
@@ -380,6 +389,7 @@ def on_cboExposure_currentIndexChanged(self, theIndex):
self._toggleCboAggregation()
self.setOkButtonStatus()
+ @pyqtSlot(QtCore.QString)
def on_cboFunction_currentIndexChanged(self, theIndex):
"""Automatic slot executed when the Function combo is changed
so that we can see if the ok button should be enabled.
@@ -397,7 +407,17 @@ def on_cboFunction_currentIndexChanged(self, theIndex):
"""
# Add any other logic you mught like here...
- del theIndex
+ if not theIndex.isNull or not theIndex == '':
+ myFunctionID = self.getFunctionID()
+
+ myFunctions = getSafeImpactFunctions(myFunctionID)
+ self.myFunction = myFunctions[0][myFunctionID]
+ self.functionParams = None
+ if hasattr(self.myFunction, 'parameters'):
+ self.functionParams = self.myFunction.parameters
+ self.setToolFunctionOptionsButton()
+ else:
+ del theIndex
self._toggleCboAggregation()
self.setOkButtonStatus()
@@ -417,6 +437,29 @@ def setOkButtonStatus(self):
if myMessage is not '':
self.displayHtml(myMessage)
+ def setToolFunctionOptionsButton(self):
+ """Helper function to set the tool function button
+ status if there is function parameters to configure
+ then enable it, otherwise disable it.
+
+ Args:
+ None.
+ Returns:
+ None.
+ Raises:
+ no exceptions explicitly raised."""
+ #check if functionParams intialized
+ if self.functionParams is None:
+ self.toolFunctionOptions.setEnabled(False)
+ else:
+ self.toolFunctionOptions.setEnabled(True)
+
+ def on_toolFunctionOptions_clicked(self):
+ conf = ConfigurableImpactFunctionsDialog(self)
+ conf.buildFormFromImpactFunctionsParameter(self.myFunction,
+ self.functionParams)
+ conf.showNormal()
+
def canvasLayersetChanged(self):
"""A helper slot to update the dock combos if the canvas layerset
has been changed (e.g. one or more layer visibilities changed).
@@ -694,6 +737,7 @@ def readImpactLayer(self, myEngineImpactLayer):
myFilename = myEngineImpactLayer.get_filename()
myName = myEngineImpactLayer.get_name()
+ myQgisLayer = None
# Read layer
if myEngineImpactLayer.is_vector:
myQgisLayer = QgsVectorLayer(myFilename, myName, 'ogr')
@@ -1072,7 +1116,8 @@ def _aggregateResultsRaster(self, myQgisImpactLayer):
self.tr(
'You aborted aggregation, '
'so there are no data for analysis. Exiting...'))
-# QgsMapLayerRegistry.instance().addMapLayer(self.aggregationLayer)
+ if self.showPostProcessingLayers:
+ QgsMapLayerRegistry.instance().addMapLayer(self.aggregationLayer)
return
def _parseAggregationResults(self):
View
6 safe_qgis/dock_base.py
@@ -1,7 +1,9 @@
+# -*- coding: utf-8 -*-
+
# Form implementation generated from reading ui file 'dock_base.ui'
#
-# Created: Sat Sep 29 13:17:12 2012
-# by: PyQt4 UI code generator 4.9.1
+# Created: Wed Oct 3 17:56:22 2012
+# by: PyQt4 UI code generator 4.9.3
#
# WARNING! All changes made in this file will be lost!
View
192 safe_qgis/i18n/inasafe_af.ts
@@ -43,27 +43,27 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="utilities.py" line="456"/>
+ <location filename="utilities.py" line="446"/>
<source>Input layer to getWGS84resolution must be a raster layer. I got: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="utilities.py" line="432"/>
+ <location filename="utilities.py" line="422"/>
<source>Problem:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="utilities.py" line="428"/>
+ <location filename="utilities.py" line="418"/>
<source>Error:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="utilities.py" line="436"/>
+ <location filename="utilities.py" line="426"/>
<source>Click for Diagnostic Information:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="utilities.py" line="417"/>
+ <location filename="utilities.py" line="407"/>
<source>No details provided</source>
<translation type="unfinished"></translation>
</message>
@@ -71,23 +71,23 @@
<context>
<name>Dock</name>
<message>
- <location filename="dock.py" line="708"/>
+ <location filename="dock.py" line="709"/>
<source>Loaded impact layer &quot;%s&quot; is not valid</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1286"/>
+ <location filename="dock.py" line="1285"/>
<source>No impact layer was calculated. Error message: %s
</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1329"/>
+ <location filename="dock.py" line="1328"/>
<source>Impact layer %s was neither a raster or a vector layer</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1803"/>
+ <location filename="dock.py" line="1804"/>
<source>Pdf File (*.pdf)</source>
<translation type="unfinished"></translation>
</message>
@@ -97,227 +97,227 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="852"/>
+ <location filename="dock.py" line="853"/>
<source>Calculating impact...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="853"/>
+ <location filename="dock.py" line="854"/>
<source>This may take a little while - we are computing the areas that will be impacted by the hazard and writing the result to a new layer.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1275"/>
+ <location filename="dock.py" line="1274"/>
<source>Loading results...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1276"/>
+ <location filename="dock.py" line="1275"/>
<source>The impact assessment is complete - loading the results into QGIS now...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1375"/>
+ <location filename="dock.py" line="1376"/>
<source>Analyzing this question...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1553"/>
+ <location filename="dock.py" line="1554"/>
<source>Preparing hazard data...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1554"/>
+ <location filename="dock.py" line="1555"/>
<source>We are resampling and clipping the hazardlayer to match the intersection of the exposurelayer and the current view extents.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1562"/>
+ <location filename="dock.py" line="1563"/>
<source>Preparing exposure data...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1563"/>
+ <location filename="dock.py" line="1564"/>
<source>We are resampling and clipping the exposurelayer to match the intersection of the hazardlayer and the current view extents.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1803"/>
+ <location filename="dock.py" line="1804"/>
<source>Write to PDF</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1821"/>
+ <location filename="dock.py" line="1822"/>
<source>Map Creator</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1808"/>
+ <location filename="dock.py" line="1809"/>
<source>Generating your map as a PDF document...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1813"/>
+ <location filename="dock.py" line="1814"/>
<source>Your PDF was created....opening using the default PDF viewer on your system.The generated pdf is saved as: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1821"/>
+ <location filename="dock.py" line="1822"/>
<source>Processing complete.The generated pdf is saved as: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1710"/>
+ <location filename="dock.py" line="1711"/>
<source>No keywords have been defined for this layer yet. If you wish to use it as an impact or hazard layer in a scenario, please use the keyword editor. You can open the keyword editor by clicking on the &lt;img src=&quot;qrc:/plugins/inasafe/keywords.png&quot; width=&quot;16&quot; height=&quot;16&quot;&gt; icon in the toolbar, or choosing Plugins -&gt; InaSAFE -&gt; Keyword Editor from the menus.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="290"/>
+ <location filename="dock.py" line="291"/>
<source>To use this tool you need to add some layers to your QGIS project. Ensure that at least one &lt;em&gt;hazard&lt;/em&gt; layer (e.g. earthquake MMI) and one &lt;em&gt;exposure&lt;/em&gt; layer (e.g. dwellings) re available. When you are ready, click the &lt;em&gt;run&lt;/em&gt; button below.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="296"/>
+ <location filename="dock.py" line="297"/>
<source>Getting started:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="312"/>
+ <location filename="dock.py" line="313"/>
<source>No functions are available for the inputs you have specified. Try selecting a different combination of inputs. Please consult the user manual &lt;FIXME: add link&gt; for details on what constitute valid inputs for a given risk function.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="318"/>
+ <location filename="dock.py" line="319"/>
<source>No valid functions:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="321"/>
+ <location filename="dock.py" line="322"/>
<source>Hazard keywords:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="324"/>
+ <location filename="dock.py" line="325"/>
<source>Exposure keywords:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="332"/>
+ <location filename="dock.py" line="333"/>
<source>You can now proceed to run your model by clicking the &lt;em&gt;Run&lt;/em&gt; button.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="334"/>
+ <location filename="dock.py" line="335"/>
<source>Ready</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="825"/>
+ <location filename="dock.py" line="826"/>
<source>An exception occurred when setting up the impact calculator.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="872"/>
+ <location filename="dock.py" line="873"/>
<source>An exception occurred when starting the model.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="837"/>
+ <location filename="dock.py" line="838"/>
<source>An exception occurred when setting up the model runner.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="571"/>
+ <location filename="dock.py" line="572"/>
<source>No aggregation</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="812"/>
+ <location filename="dock.py" line="813"/>
<source>An exception occurred when reading the aggregation attribute.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="953"/>
+ <location filename="dock.py" line="954"/>
<source>Aggregating results...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="954"/>
+ <location filename="dock.py" line="955"/>
<source>This may take a little while - we are aggregating the hazards by %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="968"/>
+ <location filename="dock.py" line="969"/>
<source>An exception occurred when aggregating the results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1005"/>
+ <location filename="dock.py" line="1006"/>
<source>Error when reading %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="994"/>
+ <location filename="dock.py" line="995"/>
<source>%1 aggregated to %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1022"/>
+ <location filename="dock.py" line="1023"/>
<source>Could not remove the unneded fields</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1033"/>
+ <location filename="dock.py" line="1034"/>
<source>%1 is %2 but it should be either vector or raster</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1065"/>
+ <location filename="dock.py" line="1066"/>
<source>Calculating zonal statistics</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1065"/>
+ <location filename="dock.py" line="1066"/>
<source>Abort...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1072"/>
+ <location filename="dock.py" line="1073"/>
<source>ZonalStats: Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1072"/>
+ <location filename="dock.py" line="1073"/>
<source>You aborted aggregation, so there are no data for analysis. Exiting...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1081"/>
+ <location filename="dock.py" line="1082"/>
<source>Aggregation unit</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1086"/>
+ <location filename="dock.py" line="1087"/>
<source>Sum</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1123"/>
+ <location filename="dock.py" line="1124"/>
<source>An exception occurred when reading theaggregation data. %1 not found in %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1224"/>
+ <location filename="dock.py" line="1225"/>
<source>Waiting for aggregation attribute selection...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1226"/>
+ <location filename="dock.py" line="1227"/>
<source>Please select which attribute you want to use as ID for the aggregated results</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock.py" line="1480"/>
+ <location filename="dock.py" line="1481"/>
<source>&lt;p&gt;There was insufficient overlap between the input layers and / or the layers and the viewport. Please select two overlapping layers and zoom or pan to them or disable viewport clipping in the options dialog. Full details follow:&lt;/p&gt;&lt;p&gt;Failed to obtain the optimal extent given:&lt;/p&gt;&lt;p&gt;Hazard: %1&lt;/p&gt;&lt;p&gt;Exposure: %2&lt;/p&gt;&lt;p&gt;Viewport Geo Extent: %3&lt;/p&gt;&lt;p&gt;Hazard Geo Extent: %4&lt;/p&gt;&lt;p&gt;Exposure Geo Extent: %5&lt;/p&gt;&lt;p&gt;Viewport clipping enabled: %6&lt;/p&gt;&lt;p&gt;Details: %7&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
@@ -330,42 +330,42 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock_base.ui" line="55"/>
+ <location filename="dock_base.ui" line="62"/>
<source>In the event of</source>
<translation>In geval van</translation>
</message>
<message>
- <location filename="dock_base.ui" line="65"/>
+ <location filename="dock_base.ui" line="72"/>
<source>How many</source>
<translation>Hoe veel</translation>
</message>
<message>
- <location filename="dock_base.ui" line="75"/>
+ <location filename="dock_base.ui" line="82"/>
<source>&amp;Might</source>
<translation>&amp;Mag</translation>
</message>
<message>
- <location filename="dock_base.ui" line="119"/>
+ <location filename="dock_base.ui" line="161"/>
<source>Results</source>
<translation>Resultate</translation>
</message>
<message>
- <location filename="dock_base.ui" line="126"/>
+ <location filename="dock_base.ui" line="168"/>
<source>about:blank</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock_base.ui" line="247"/>
+ <location filename="dock_base.ui" line="289"/>
<source>Help</source>
<translation>Help</translation>
</message>
<message>
- <location filename="dock_base.ui" line="267"/>
+ <location filename="dock_base.ui" line="309"/>
<source>Print...</source>
<translation>Druk...</translation>
</message>
<message>
- <location filename="dock_base.ui" line="287"/>
+ <location filename="dock_base.ui" line="329"/>
<source>Run</source>
<translation>Begin</translation>
</message>
@@ -375,15 +375,25 @@
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock_base.ui" line="172"/>
+ <location filename="dock_base.ui" line="214"/>
<source>Supported by:</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="dock_base.ui" line="106"/>
+ <location filename="dock_base.ui" line="148"/>
<source>Aggregate results by</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="dock_base.ui" line="127"/>
+ <source>Configure Impact Function Parameter</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="dock_base.ui" line="130"/>
+ <source>...</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>HelpBase</name>
@@ -458,57 +468,57 @@ to%s: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>tsunami [m]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>tsunami [wet/dry]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>tsunami [feet]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>flood [m]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>flood [wet/dry]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>flood [feet]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>tephra [kg2/m2]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="148"/>
+ <location filename="keywords_dialog.py" line="147"/>
<source>Hide advanced editor</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="150"/>
+ <location filename="keywords_dialog.py" line="149"/>
<source>Show advanced editor</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="620"/>
+ <location filename="keywords_dialog.py" line="619"/>
<source>Not Set</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="385"/>
+ <location filename="keywords_dialog.py" line="384"/>
<source>Colons are not allowed, replaced with &quot;.&quot;</source>
<translation type="unfinished"></translation>
</message>
@@ -518,18 +528,18 @@ to%s: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>earthquake [MMI]</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="677"/>
+ <location filename="keywords_dialog.py" line="676"/>
<source>An error was encountered when saving the keywords:
%s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="677"/>
+ <location filename="keywords_dialog.py" line="676"/>
<source>InaSAFE</source>
<translation type="unfinished"></translation>
</message>
@@ -539,7 +549,7 @@ to%s: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="98"/>
+ <location filename="keywords_dialog.py" line="95"/>
<source>aggregation</source>
<translation type="unfinished"></translation>
</message>
@@ -549,7 +559,7 @@ to%s: %s</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="keywords_dialog.py" line="81"/>
+ <location filename="keywords_dialog.py" line="80"/>
<source>volcano</source>
<translation type="unfinished"></translation>
</message>
@@ -766,57 +776,57 @@ to%s: %s</source>
<context>
<name>Plugin</name>
<message>
- <location filename="plugin.py" line="151"/>
+ <location filename="plugin.py" line="153"/>
<source>Toggle InaSAFE Dock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="155"/>
+ <location filename="plugin.py" line="157"/>
<source>Show/hide InaSAFE dock widget</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="296"/>
+ <location filename="plugin.py" line="300"/>
<source>InaSAFE</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="170"/>
+ <location filename="plugin.py" line="172"/>
<source>Keyword Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="175"/>
+ <location filename="plugin.py" line="177"/>
<source>Open the keywords editor</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="186"/>
+ <location filename="plugin.py" line="190"/>
<source>Reset Dock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="191"/>
+ <location filename="plugin.py" line="195"/>
<source>Reset the InaSAFE Dock</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="203"/>
+ <location filename="plugin.py" line="207"/>
<source>InaSAFE Options</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="208"/>
+ <location filename="plugin.py" line="212"/>
<source>Open InaSAFE options dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="220"/>
+ <location filename="plugin.py" line="224"/>
<source>InaSAFE Impact Functions Doc</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="plugin.py" line="226"/>
+ <location filename="plugin.py" line="230"/>
<source>Open InaSAFE impact functions doc</source>
<translation type="unfinished"></translation>
</message>
View
BIN  safe_qgis/i18n/inasafe_id.qm
Binary file not shown
View
195 safe_qgis/i18n/inasafe_id.ts
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="2.0" language="id_ID" sourcelanguage="">
+<!DOCTYPE TS>
+<TS version="2.0" language="id_ID">
<context>
<name>@default</name>
<message>
@@ -38,7 +39,7 @@
<translation>&lt;p&gt;Error ketika menjalankan perintah berikut:&lt;/p&gt;&lt;pre&gt;%s&lt;/pre&gt;&lt;p&gt;Pesan Kesalahan: %s</translation>
</message>
<message>
- <location filename="utilities.py" line="456"/>
+ <location filename="utilities.py" line="446"/>
<source>Input layer to getWGS84resolution must be a raster layer. I got: %s</source>
<translation>Lapisan input untuk mendapatkan resolusi WGS84 harus merupakan lapisan raster. Saya mendapatkan: %s</translation>
</message>
@@ -48,22 +49,22 @@
<translation>Tidak ada fitur termasuk dalam luasan klip. Cobalah panning / zoom ke area yang berisi data dan kemudian mencoba untuk menjalankan analisis Anda lagi.</translation>
</message>
<message>
- <location filename="utilities.py" line="432"/>
+ <location filename="utilities.py" line="422"/>
<source>Problem:</source>
<translation>Permasalahan:</translation>
</message>
<message>
- <location filename="utilities.py" line="428"/>
+ <location filename="utilities.py" line="418"/>
<source>Error:</source>
<translation>Kesalahan:</translation>
</message>
<message>
- <location filename="utilities.py" line="436"/>
+ <location filename="utilities.py" line="426"/>
<source>Click for Diagnostic Information:</source>
<translation>Klik untuk informasi diagnostik:</translation>
</message>
<message>
- <location filename="utilities.py" line="417"/>
+ <location filename="utilities.py" line="407"/>
<source>No details provided</source>
<translation>Tidak ada detil yang tersedia</translation>
</message>
@@ -71,23 +72,23 @@
<context>
<name>Dock</name>
<message>
- <location filename="dock.py" line="708"/>
+ <location filename="dock.py" line="709"/>
<source>Loaded impact layer &quot;%s&quot; is not valid</source>
<translation>Lapisan dampak &quot;%s&quot; yang dimuat tidak benar</translation>
</message>
<message>
- <location filename="dock.py" line="1286"/>
+ <location filename="dock.py" line="1285"/>
<source>No impact layer was calculated. Error message: %s
</source>
<translation>Tidak ada lapisan dampak yang dihitung. Pesan kesalahan: %s</translation>
</message>
<message>
- <location filename="dock.py" line="1329"/>
+ <location filename="dock.py" line="1328"/>
<source>Impact layer %s was neither a raster or a vector layer</source>
<translation>Lapisan dampak %s bukan lapisan vektor atau raster</translation>
</message>
<message>
- <location filename="dock.py" line="1803"/>
+ <location filename="dock.py" line="1804"/>
<source>Pdf File (*.pdf)</source>
<translation>Dokumen PDF (*.pdf)</translation>
</message>
@@ -97,227 +98,227 @@
<translation>InaSAFE %s %s</translation>
</message>
<message>
- <location filename="dock.py" line="852"/>
+ <location filename="dock.py" line="853"/>
<source>Calculating impact...</source>
<translation>Menghitung dampak...</translation>
</message>
<message>
- <location filename="dock.py" line="853"/>
+ <location filename="dock.py" line="854"/>
<source>This may take a little while - we are computing the areas that will be impacted by the hazard and writing the result to a new layer.</source>
<translation>Ini mungkin memerlukan sedikit waktu - kita menghitung daerah yang akan terkena dampak bahaya dan menulis hasilnya ke layer baru.</translation>
</message>
<message>
- <location filename="dock.py" line="1275"/>
+ <location filename="dock.py" line="1274"/>
<source>Loading results...</source>
<translation>Sedang memuat hasil-hasil...</translation>
</message>
<message>
- <location filename="dock.py" line="1276"/>
+ <location filename="dock.py" line="1275"/>
<source>The impact assessment is complete - loading the results into QGIS now...</source>
<translation>Analisa dampak telah selesai - sedang memuat hasil ke QGIS...</translation>
</message>
<message>
- <location filename="dock.py" line="1375"/>
+ <location filename="dock.py" line="1376"/>
<source>Analyzing this question...</source>
<translation>Sedang menganalisa pertanyaan...</translation>
</message>
<message>
- <location filename="dock.py" line="1553"/>
+ <location filename="dock.py" line="1554"/>
<source>Preparing hazard data...</source>
<translation>Sedang mempersiapkan data bahaya...</translation>
</message>
<message>
- <location filename="dock.py" line="1554"/>
+ <location filename="dock.py" line="1555"/>
<source>We are resampling and clipping the hazardlayer to match the intersection of the exposurelayer and the current view extents.</source>
<translation>Kita resampling dan menjepit hazardlayer untuk mencocokkan perpotongan dari exposurelayer dan luasan tampilan aktif.</translation>
</message>
<message>
- <location filename="dock.py" line="1562"/>
+ <location filename="dock.py" line="1563"/>
<source>Preparing exposure data...</source>
<translation>Sedang mempersiapkan data terpapar...</translation>
</message>
<message>
- <location filename="dock.py" line="1563"/>
+ <location filename="dock.py" line="1564"/>
<source>We are resampling and clipping the exposurelayer to match the intersection of the hazardlayer and the current view extents.</source>
<translation>Kita resampling dan menjepit exposurelayer untuk mencocokkan persimpangan hazardlayer dan luasan tampilan aktif.</translation>
</message>
<message>
- <location filename="dock.py" line="1803"/>
+ <location filename="dock.py" line="1804"/>
<source>Write to PDF</source>
<translation>Menulis ke pdf</translation>
</message>
<message>
- <location filename="dock.py" line="1821"/>
+ <location filename="dock.py" line="1822"/>
<source>Map Creator</source>
<translation>Pembuat Peta</translation>
</message>
<message>
- <location filename="dock.py" line="1808"/>
+ <location filename="dock.py" line="1809"/>
<source>Generating your map as a PDF document...</source>
<translation>Sedang menghasilkan peta anda sebagai dokumen PDF...</translation>
</message>
<message>
- <location filename="dock.py" line="1813"/>
+ <location filename="dock.py" line="1814"/>
<source>Your PDF was created....opening using the default PDF viewer on your system.The generated pdf is saved as: %s</source>
<translation>Dokumen PDF telah dibuat .... membuka menggunakan peninjau standar PDF pada system.FIle pdf yang dihasilkan disimpan sebagai:% s</translation>
</message>
<message>
- <location filename="dock.py" line="1821"/>
+ <location filename="dock.py" line="1822"/>
<source>Processing complete.The generated pdf is saved as: %s</source>
<translation>Proses selesai.File pdf yang dihasilkan disimpan sebagai:% s</translation>
</message>
<message>
- <location filename="dock.py" line="1710"/>
+ <location filename="dock.py" line="1711"/>
<source>No keywords have been defined for this layer yet. If you wish to use it as an impact or hazard layer in a scenario, please use the keyword editor. You can open the keyword editor by clicking on the &lt;img src=&quot;qrc:/plugins/inasafe/keywords.png&quot; width=&quot;16&quot; height=&quot;16&quot;&gt; icon in the toolbar, or choosing Plugins -&gt; InaSAFE -&gt; Keyword Editor from the menus.</source>
<translation>Tidak ada kata kunci yang telah didefinisikan untuk lapisan ini. Jika Anda ingin menggunakannya sebagai lapisan dampak atau lapisan bahaya dalam skenario, silahkan menggunakan editor kata kunci. Anda dapat membuka editor kata kunci dengan mengklik &lt;img src=&quot;qrc:/plugins/inasafe/keywords.png&quot; &lt;img width=&quot;16&quot; height=&quot;16&quot;&gt; ikon pada toolbar, atau memilih Plugins -&gt; InaSAFE -&gt; Editor Kata Kunci dari menu.</translation>
</message>
<message>
- <location filename="dock.py" line="290"/>
+ <location filename="dock.py" line="291"/>
<source>To use this tool you need to add some layers to your QGIS project. Ensure that at least one &lt;em&gt;hazard&lt;/em&gt; layer (e.g. earthquake MMI) and one &lt;em&gt;exposure&lt;/em&gt; layer (e.g. dwellings) re available. When you are ready, click the &lt;em&gt;run&lt;/em&gt; button below.</source>
<translation>Untuk menggunakan peralatan ini, anda perlu menambahkan beberapa lapisan ke proyek QGIS anda. Pastikan bahwa itu memiliki paling tidak satu &lt;em&gt; lapisan &lt;/em&gt;ancaman (seperti gempabumi MMI) dan satu &lt;em&gt; lapisan &lt;/em&gt; terpapar (seperti tempat tinggal). Ketika anda siap, klik tombol&lt;em&gt; jalankan&lt;/em&gt; di bawah ini.</translation>
</message>
<message>
- <location filename="dock.py" line="296"/>
+ <location filename="dock.py" line="297"/>
<source>Getting started:</source>
<translation>Memulai:</translation>
</message>
<message>
- <location filename="dock.py" line="312"/>
+ <location filename="dock.py" line="313"/>
<source>No functions are available for the inputs you have specified. Try selecting a different combination of inputs. Please consult the user manual &lt;FIXME: add link&gt; for details on what constitute valid inputs for a given risk function.</source>
<translation>Tidak ada fungsi yang tersedia untuk input yang anda masukan. Cobalah untuk memilih kombinasi input yang berbeda. Silahkan mengacu pada panduan pengguna &lt;FIXME: add link&gt; untuk lebih jelasnya mengenai input yang benar untuk fungsi risiko yang diberikan.</translation>
</message>
<message>
- <location filename="dock.py" line="318"/>
+ <location filename="dock.py" line="319"/>
<source>No valid functions:</source>
<translation>Tidak ada fungsi yang valid:</translation>
</message>
<message>
- <location filename="dock.py" line="321"/>
+ <location filename="dock.py" line="322"/>
<source>Hazard keywords:</source>
<translation>Kata kunci ancaman:</translation>
</message>
<message>
- <location filename="dock.py" line="324"/>
+ <location filename="dock.py" line="325"/>
<source>Exposure keywords:</source>
<translation>Kata kunci terpapar:</translation>
</message>
<message>
- <location filename="dock.py" line="332"/>
+ <location filename="dock.py" line="333"/>
<source>You can now proceed to run your model by clicking the &lt;em&gt;Run&lt;/em&gt; button.</source>
<translation>Sekarang anda dapat memproses untuk menjalankan model anda dengan mengklik &lt;em&gt; tombol&lt;/em&gt; Hitung.</translation>
</message>
<message>
- <location filename="dock.py" line="334"/>
+ <location filename="dock.py" line="335"/>
<source>Ready</source>
<translation>Siap</translation>
</message>
<message>
- <location filename="dock.py" line="825"/>
+ <location filename="dock.py" line="826"/>
<source>An exception occurred when setting up the impact calculator.</source>
<translation>Terjadi pengecualian ketika mempersiapkan kalkulator dampak.</translation>
</message>
<message>
- <location filename="dock.py" line="872"/>
+ <location filename="dock.py" line="873"/>
<source>An exception occurred when starting the model.</source>
<translation>Terjadi pengecualian ketika memulai model.</translation>
</message>
<message>
- <location filename="dock.py" line="837"/>
+ <location filename="dock.py" line="838"/>
<source>An exception occurred when setting up the model runner.</source>
<translation>Terjadi pengecualian ketika memulai mempersiapkan model pelari.</translation>
</message>
<message>
- <location filename="dock.py" line="571"/>
+ <location filename="dock.py" line="572"/>
<source>No aggregation</source>
<translation>Tanpa agregasi</translation>
</message>
<message>
- <location filename="dock.py" line="812"/>
+ <location filename="dock.py" line="813"/>
<source>An exception occurred when reading the aggregation attribute.</source>
<translation>Pengecualian terjadi ketika membaca atribut agregasi.</translation>
</message>
<message>
- <location filename="dock.py" line="953"/>
+ <location filename="dock.py" line="954"/>
<source>Aggregating results...</source>
<translation>Hasil agregasi...</translation>
</message>
<message>
- <location filename="dock.py" line="954"/>
+ <location filename="dock.py" line="955"/>
<source>This may take a little while - we are aggregating the hazards by %1</source>
<translation>Ini mungkin akan memakan sedikit waktu - kita sedang melakukan agregasi ancaman berdasarkan %1</translation>
</message>
<message>
- <location filename="dock.py" line="968"/>
+ <location filename="dock.py" line="969"/>
<source>An exception occurred when aggregating the results</source>