Revision: 4324 http://sourceforge.net/p/jump-pilot/code/4324 Author: ma15569 Date: 2015-02-27 12:20:48 +0000 (Fri, 27 Feb 2015) Log Message: ----------- 2014_02_22 Giuseppe Aruta (ma15569) - Add 2 new plugin to manage nodata values on monoband DEM a) Change No Data Value: it changes default nodata value of file b) Set input value to no dta;: it changes an arbitrary cell value to default nodata
Modified Paths: -------------- core/trunk/ChangeLog core/trunk/scripts/default-plugins.xml core/trunk/src/language/jump.properties core/trunk/src/language/jump_cz.properties core/trunk/src/language/jump_de.properties core/trunk/src/language/jump_es.properties core/trunk/src/language/jump_fi.properties core/trunk/src/language/jump_fr.properties core/trunk/src/language/jump_hu.properties core/trunk/src/language/jump_it.properties core/trunk/src/language/jump_ja_JP.properties core/trunk/src/language/jump_ml.properties core/trunk/src/language/jump_pt.properties core/trunk/src/language/jump_pt_BR.properties core/trunk/src/language/jump_ta_IN.properties core/trunk/src/language/jump_te.properties core/trunk/src/language/jump_zh_CN.properties core/trunk/src/language/jump_zh_HK.properties Added Paths: ----------- core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeNoDataValuePlugIn.java core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeValueToNoDataPlugIn.java Modified: core/trunk/ChangeLog =================================================================== --- core/trunk/ChangeLog 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/ChangeLog 2015-02-27 12:20:48 UTC (rev 4324) @@ -1,5 +1,11 @@ # for display continuity sake please use 2 spaces instead of tabs 2014_02_22 Giuseppe Aruta (ma15569) + - Add 2 new plugin to manage nodata values on monoband DEM + a) Change No Data Value: it changes default nodata value of file + b) Set input value to no dta;: it changes an arbitrary cell value to + default nodata + +2014_02_22 Giuseppe Aruta (ma15569) - Add new Compare Raster Grid layers to Raster plugins 2014_01_24 Giuseppe Aruta (ma15569) Modified: core/trunk/scripts/default-plugins.xml =================================================================== --- core/trunk/scripts/default-plugins.xml 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/scripts/default-plugins.xml 2015-02-27 12:20:48 UTC (rev 4324) @@ -811,6 +811,16 @@ <main-menu menupath=" MenuNames.RASTER/MenuNames.STATISTICS" install="true"/> </menus> </plug-in> + <plug-in> + org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn + + </plug-in> + + <plug-in> + org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn + + </plug-in> + <separator /> <plug-in> org.openjump.core.ui.plugin.raster.ProfileGraphPlugIn Modified: core/trunk/src/language/jump.properties =================================================================== --- core/trunk/src/language/jump.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1073,6 +1073,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = Black-White org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = Blue-Green-Red org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = Blue-Red Modified: core/trunk/src/language/jump_cz.properties =================================================================== --- core/trunk/src/language/jump_cz.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_cz.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1047,6 +1047,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \u010Cern\u00E1-B\u00EDl\u00E1 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = Modr\u00E1-Zelen\u00E1-\u010Cerven\u00E1 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = Modr\u00E1-\u010Cerven\u00E1 Modified: core/trunk/src/language/jump_de.properties =================================================================== --- core/trunk/src/language/jump_de.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_de.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1048,6 +1048,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = Schwarz-Weiss org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = Blau-Gr\u00fcn-Rot org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = Blau-Rot Modified: core/trunk/src/language/jump_es.properties =================================================================== --- core/trunk/src/language/jump_es.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_es.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1056,6 +1056,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=l\xEDneas org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=Comparar capas raster MDE org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=C\xE1lculo estad\xEDsticas de capas +org.openjump.core.ui.plugin.raster.nodata.menu=Administrar valores NoData +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=Cambiar valores NoData +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=De: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=A: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=Establecer valor de la celda de entrada a NoData +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=Cambie este valor de la celda: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=A NoData: org.openjump.core.ui.plugin.raster.RasterQueryPlugIn=Inspecci\u00F3n pixel org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.info=La capa seleccionada no es un raster monobanda org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.previous.value=valor anterior Modified: core/trunk/src/language/jump_fi.properties =================================================================== --- core/trunk/src/language/jump_fi.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_fi.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1080,6 +1080,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.RasterQueryPlugIn=Pikseliarvojen kysely org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.info=Valittu rasteritaso ei ole yksikanavainen org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.previous.value=edellinen arvo Modified: core/trunk/src/language/jump_fr.properties =================================================================== --- core/trunk/src/language/jump_fr.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_fr.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1050,6 +1050,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = Noir-Blanc org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = Bleu-Vert-Rouge org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = Bleu-Rouge Modified: core/trunk/src/language/jump_hu.properties =================================================================== --- core/trunk/src/language/jump_hu.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_hu.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1047,6 +1047,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = Fekete-feh\u00E9r org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = K\u00E9k-Z\u00F6ld-V\u00F6r\u00F6s org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = K\u00E9k-V\u00F6r\u00F6s Modified: core/trunk/src/language/jump_it.properties =================================================================== --- core/trunk/src/language/jump_it.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_it.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1055,7 +1055,14 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.columns=Colonne org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=Righe org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=Compara livelli raster DEM -org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=Calculando la statistica dei livelli +org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=Calcolando la statistica dei livelli +org.openjump.core.ui.plugin.raster.nodata.menu=Gestisci valori nodata +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=Cambia il valore nodata +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=Da: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=A: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=Imposta il valore cella a nodata +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=Cambia questo valore: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=al valore nodata: org.openjump.core.ui.plugin.raster.RasterQueryPlugIn=Ispezione pixel org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.info=Il livello selezionato non \u00E8 un raster monobanda org.openjump.core.ui.plugin.raster.RasterQueryPlugIn.previous.value=valore precedente Modified: core/trunk/src/language/jump_ja_JP.properties =================================================================== --- core/trunk/src/language/jump_ja_JP.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_ja_JP.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1046,6 +1046,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \#T\:Black-White org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = \#T\:Blue-Green-Red org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = \#T\:Blue-Red Modified: core/trunk/src/language/jump_ml.properties =================================================================== --- core/trunk/src/language/jump_ml.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_ml.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1406,6 +1406,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \#T\: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = \#T\: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = \#T\: Modified: core/trunk/src/language/jump_pt.properties =================================================================== --- core/trunk/src/language/jump_pt.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_pt.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1046,6 +1046,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = T\:Black-White org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = T\:Blue-Green-Red org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = T\:Blue-Red Modified: core/trunk/src/language/jump_pt_BR.properties =================================================================== --- core/trunk/src/language/jump_pt_BR.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_pt_BR.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1046,6 +1046,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = T\:Black-White org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = T\:Blue-Green-Red org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = T\:Blue-Red Modified: core/trunk/src/language/jump_ta_IN.properties =================================================================== --- core/trunk/src/language/jump_ta_IN.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_ta_IN.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1044,6 +1044,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \u0B95\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1-\u0BB5\u0BC6\u0BB3\u0BCD\u0BB3\u0BC8 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = \u0BA8\u0BC0\u0BB2\u0BAE\u0BCD, \u0BAA\u0B9A\u0BCD\u0B9A\u0BC8, \u0B9A\u0BBF\u0BB5\u0BAA\u0BCD\u0BAA\u0BC1 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = \u0BA8\u0BC0\u0BB2\u0BAE\u0BCD, \u0BB0\u0BC6\u0B9F\u0BCD Modified: core/trunk/src/language/jump_te.properties =================================================================== --- core/trunk/src/language/jump_te.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_te.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1220,6 +1220,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = Black-White org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = Blue-Green-Red org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = Blue-Red Modified: core/trunk/src/language/jump_zh_CN.properties =================================================================== --- core/trunk/src/language/jump_zh_CN.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_zh_CN.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1049,6 +1049,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \u9ed1\u767d org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = \u84dd\uff0c\u7eff\uff0c\u7ea2 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = \u84dd\u7ea2 Modified: core/trunk/src/language/jump_zh_HK.properties =================================================================== --- core/trunk/src/language/jump_zh_HK.properties 2015-02-27 06:56:42 UTC (rev 4323) +++ core/trunk/src/language/jump_zh_HK.properties 2015-02-27 12:20:48 UTC (rev 4324) @@ -1049,6 +1049,13 @@ org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.rows=\#T\:Rows org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.name=\#T\:Compare Grid Raster layers org.openjump.core.ui.plugin.raster.DEMStatisticsPlugIn.report=\#T\:Calculating layers statistics +org.openjump.core.ui.plugin.raster.nodata.menu=\#T\:Manage No Data values +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name=\#T\:Change No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from=\#T\:From: +org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to=\#T\:To: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name=\#T\:Set input cell value to No Data value +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change=\#T\:Change this cell value: +org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata=\#T\:to nodata value: org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Black-White = \u9ED1\u767D org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Green-Red = \u85CD\uFF0C\u7DA0\uFF0C\u7D05 org.openjump.core.ui.plugin.raster.color.RasterColorEditorDialog.Blue-Red = \u85CD\u7D05 Added: core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeNoDataValuePlugIn.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeNoDataValuePlugIn.java (rev 0) +++ core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeNoDataValuePlugIn.java 2015-02-27 12:20:48 UTC (rev 4324) @@ -0,0 +1,322 @@ +package org.openjump.core.ui.plugin.raster.nodata; + +import java.awt.GridBagLayout; +import java.awt.event.KeyEvent; +import java.awt.geom.NoninvertibleTransformException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.channels.FileChannel; +import java.text.NumberFormat; +import java.util.Properties; + +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.apache.log4j.Logger; +import org.openjump.core.apitools.LayerTools; +import org.openjump.core.rasterimage.GridFloat; +import org.openjump.core.rasterimage.ImageAndMetadata; +import org.openjump.core.rasterimage.RasterImageIO; +import org.openjump.core.rasterimage.RasterImageLayer; +import org.openjump.core.rasterimage.Resolution; +import org.openjump.core.rasterimage.TiffTags.TiffReadingException; +import org.openjump.core.rasterimage.sextante.OpenJUMPSextanteRasterLayer; +import org.openjump.core.rasterimage.sextante.rasterWrappers.GridWrapperNotInterpolated; +import org.openjump.core.ui.plugin.layer.pirolraster.LoadSextanteRasterImagePlugIn; +import org.saig.core.gui.swing.sldeditor.util.FormUtils; + +import com.vividsolutions.jts.geom.Envelope; +import com.vividsolutions.jump.I18N; +import com.vividsolutions.jump.workbench.WorkbenchContext; +import com.vividsolutions.jump.workbench.model.Category; +import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn; +import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory; +import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck; +import com.vividsolutions.jump.workbench.plugin.PlugInContext; +import com.vividsolutions.jump.workbench.ui.GenericNames; +import com.vividsolutions.jump.workbench.ui.MenuNames; +import com.vividsolutions.jump.workbench.ui.Viewport; +import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller; + +public class ChangeNoDataValuePlugIn extends AbstractPlugIn { + public static final String PLUGINNAME = I18N + .get("org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.name"); + + private static final Logger LOGGER = Logger + .getLogger(ChangeNoDataValuePlugIn.class); + private Properties properties = null; + private String byteOrder = "LSBFIRST"; + private static String propertiesFile = LoadSextanteRasterImagePlugIn + .getPropertiesFile(); + NumberFormat cellFormat = null; + + private String SUBMENU = I18N + .get("org.openjump.core.ui.plugin.raster.nodata.menu"); + + public ChangeNoDataValuePlugIn() { + + } + + @Override + public String getName() { + return PLUGINNAME; + } + + @Override + public void initialize(PlugInContext context) throws Exception { + WorkbenchContext workbenchContext = context.getWorkbenchContext(); + new FeatureInstaller(workbenchContext); + + context.getFeatureInstaller().addMainMenuPlugin(this, + new String[] { MenuNames.RASTER, SUBMENU }, getName(), false, + null, createEnableCheck(context.getWorkbenchContext())); + } + + @Override + public boolean execute(PlugInContext context) throws Exception { + reportNothingToUndoYet(context); + RasterImageLayer rLayer = (RasterImageLayer) LayerTools + .getSelectedLayerable(context, RasterImageLayer.class); + JPanel firstPanel = new JPanel(new GridBagLayout()); + JLabel source_NoData_label = new JLabel( + I18N.get("org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.from")); + JLabel target_NoData_label = new JLabel( + I18N.get("org.openjump.core.ui.plugin.raster.nodata.ChangeNoDataValuePlugIn.to")); + JTextField source_nodata = new JTextField(String.valueOf(rLayer + .getNoDataValue())); + source_nodata.setEditable(false); + JTextField target_nodata = new JTextField(String.valueOf("-99999")); + source_nodata.addKeyListener(new java.awt.event.KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + char vChar = e.getKeyChar(); + if (!(Character.isDigit(vChar) || (vChar == KeyEvent.VK_PERIOD) + || (vChar == KeyEvent.VK_BACK_SPACE) || (vChar == KeyEvent.VK_DELETE))) { + e.consume(); + } + } + }); + target_nodata.addKeyListener(new java.awt.event.KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + char vChar = e.getKeyChar(); + if (!(Character.isDigit(vChar) || (vChar == KeyEvent.VK_PERIOD) + || (vChar == KeyEvent.VK_BACK_SPACE) || (vChar == KeyEvent.VK_DELETE))) { + e.consume(); + } + } + }); + + FormUtils.addRowInGBL(firstPanel, 2, 0, source_NoData_label, + source_nodata); + FormUtils.addRowInGBL(firstPanel, 2, 3, target_NoData_label, + target_nodata); + + int option = JOptionPane.showConfirmDialog(null, firstPanel, + PLUGINNAME, JOptionPane.OK_CANCEL_OPTION, + JOptionPane.PLAIN_MESSAGE); + + switch (option) { + + case JOptionPane.CANCEL_OPTION: + + break; + + case JOptionPane.OK_OPTION: + + String redName = context.getLayerManager().uniqueLayerName( + rLayer.getName()); + int boxToInt = 0; + + File flt_outFile = new File(System.getProperty("java.io.tmpdir") + .concat(File.separator).concat(redName).concat(".flt")); + File hdr_outFile = new File(System.getProperty("java.io.tmpdir") + .concat(File.separator).concat(redName).concat(".hdr")); + float newdata = Float.parseFloat(target_nodata.getText()); + float olddata = (float) rLayer.getNoDataValue(); + saveFLT(flt_outFile, context, rLayer, boxToInt, olddata, newdata); + saveHDR(hdr_outFile, context, rLayer, newdata); + loadFLT(flt_outFile, context); + } + return true; + + } + + private void saveHDR(File outFile, PlugInContext context, + RasterImageLayer rLayer, double nodata) throws IOException { + OutputStream out = null; + try { + OpenJUMPSextanteRasterLayer rstLayer = new OpenJUMPSextanteRasterLayer(); + rstLayer.create(rLayer); + LOGGER.debug(getClass()); + out = new FileOutputStream(outFile); + this.cellFormat = NumberFormat.getNumberInstance(); + this.cellFormat.setMaximumFractionDigits(3); + this.cellFormat.setMinimumFractionDigits(0); + this.properties = new Properties(); + try { + FileInputStream fis = new FileInputStream(propertiesFile); + this.properties.load(fis); + this.properties + .getProperty(LoadSextanteRasterImagePlugIn.KEY_PATH); + fis.close(); + } catch (FileNotFoundException localFileNotFoundException) { + } catch (IOException e) { + context.getWorkbenchFrame().warnUser(GenericNames.ERROR); + } + PrintStream o = new PrintStream(out); + o.println("ncols " + rLayer.getOrigImageWidth()); + + o.println("nrows " + rLayer.getOrigImageHeight()); + + o.println("xllcorner " + rLayer.getWholeImageEnvelope().getMinX()); + + o.println("yllcorner " + rLayer.getWholeImageEnvelope().getMinY()); + + o.println("cellsize " + rstLayer.getLayerCellSize()); + + String sNoDataVal = Double.toString(nodata); + + o.println("NODATA_value " + sNoDataVal); + o.println("byteorder " + byteOrder); + o.close(); + } catch (Exception e) { + context.getWorkbenchFrame() + .warnUser( + I18N.get("org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.Error-See-Output-Window")); + context.getWorkbenchFrame().getOutputFrame().createNewDocument(); + context.getWorkbenchFrame() + .getOutputFrame() + .addText( + "SaveImageToRasterPlugIn Exception:Export Part of FLT/ASC or modify raster to ASC not yet implemented. Please Use Sextante Plugin"); + } finally { + if (out != null) + out.close(); + } + } + + private void saveFLT(File outFile, PlugInContext context, + RasterImageLayer rLayer, int band, float oldnodata, float newnodata) + throws IOException { + FileOutputStream out = null; + try { + OpenJUMPSextanteRasterLayer rstLayer = new OpenJUMPSextanteRasterLayer(); + rstLayer.create(rLayer); + LOGGER.debug(getClass()); + out = new FileOutputStream(outFile); + this.cellFormat = NumberFormat.getNumberInstance(); + this.cellFormat.setMaximumFractionDigits(3); + this.cellFormat.setMinimumFractionDigits(0); + this.properties = new Properties(); + try { + FileInputStream fis = new FileInputStream(propertiesFile); + this.properties.load(fis); + this.properties + .getProperty(LoadSextanteRasterImagePlugIn.KEY_PATH); + fis.close(); + } catch (FileNotFoundException localFileNotFoundException) { + } catch (IOException e) { + context.getWorkbenchFrame().warnUser(GenericNames.ERROR); + } + FileChannel fileChannelOut = out.getChannel(); + GridWrapperNotInterpolated gwrapper = new GridWrapperNotInterpolated( + rstLayer, rstLayer.getLayerGridExtent()); + int nx = rstLayer.getLayerGridExtent().getNX(); + int ny = rstLayer.getLayerGridExtent().getNY(); + ByteBuffer bb = ByteBuffer.allocateDirect(nx * 4); + bb.order(ByteOrder.LITTLE_ENDIAN); + + for (int y = 0; y < ny; y++) { + for (int x = 0; x < nx; x++) { + float value = gwrapper.getCellValueAsFloat(x, y, band); + if (bb.hasRemaining()) { + if (value == oldnodata) { + bb.putFloat(newnodata); + } else { + bb.putFloat(value); + } + } else { + x--; + // c--; + bb.compact(); + fileChannelOut.write(bb); + bb.clear(); + } + } + } + bb.compact(); + fileChannelOut.write(bb); + bb.clear(); + } catch (Exception e) { + context.getWorkbenchFrame() + .warnUser( + I18N.get("org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.Error-See-Output-Window")); + context.getWorkbenchFrame().getOutputFrame().createNewDocument(); + context.getWorkbenchFrame() + .getOutputFrame() + .addText( + "SaveImageToRasterPlugIn Exception:Export Part of FLT/ASC or modify raster to ASC not yet implemented. Please Use Sextante Plugin"); + } finally { + if (out != null) + out.close(); + } + } + + private void loadFLT(File flt_outFile, PlugInContext context) + throws NoninvertibleTransformException, TiffReadingException, + Exception { + + RasterImageIO rasterImageIO = new RasterImageIO(); + Viewport viewport = context.getWorkbenchContext().getLayerViewPanel() + .getViewport(); + Resolution requestedRes = RasterImageIO + .calcRequestedResolution(viewport); + ImageAndMetadata imageAndMetadata = rasterImageIO.loadImage( + context.getWorkbenchContext(), flt_outFile.getAbsolutePath(), + null, viewport.getEnvelopeInModelCoordinates(), requestedRes); + + GridFloat gf = new GridFloat(flt_outFile.getAbsolutePath()); + + Envelope imageEnvelope = new Envelope(gf.getXllCorner(), + gf.getXllCorner() + gf.getnCols() * gf.getCellSize(), + gf.getYllCorner(), gf.getYllCorner() + gf.getnRows() + * gf.getCellSize()); + + RasterImageLayer ril = new RasterImageLayer(flt_outFile.getName(), + context.getWorkbenchContext().getLayerManager(), + flt_outFile.getAbsolutePath(), imageAndMetadata.getImage(), + imageEnvelope); + String catName = "Temp";// StandardCategoryNames.RESULT; + try { + catName = ((Category) context.getLayerNamePanel() + .getSelectedCategories().toArray()[0]).getName(); + } catch (RuntimeException e1) { + } + context.getLayerManager().addLayerable(catName, ril); + } + + public static MultiEnableCheck createEnableCheck( + WorkbenchContext workbenchContext) { + EnableCheckFactory checkFactory = new EnableCheckFactory( + workbenchContext); + MultiEnableCheck multiEnableCheck = new MultiEnableCheck(); + + multiEnableCheck.add( + checkFactory.createExactlyNLayerablesMustBeSelectedCheck(1, + RasterImageLayer.class)).add( + checkFactory + .createRasterImageLayerExactlyNBandsMustExistCheck(1)); + + return multiEnableCheck; + } + +} \ No newline at end of file Property changes on: core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeNoDataValuePlugIn.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeValueToNoDataPlugIn.java =================================================================== --- core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeValueToNoDataPlugIn.java (rev 0) +++ core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeValueToNoDataPlugIn.java 2015-02-27 12:20:48 UTC (rev 4324) @@ -0,0 +1,315 @@ +package org.openjump.core.ui.plugin.raster.nodata; + +import java.awt.GridBagLayout; +import java.awt.event.KeyEvent; +import java.awt.geom.NoninvertibleTransformException; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.channels.FileChannel; +import java.text.NumberFormat; +import java.util.Properties; + +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.JTextPane; + +import org.apache.log4j.Logger; +import org.openjump.core.apitools.LayerTools; +import org.openjump.core.rasterimage.GridFloat; +import org.openjump.core.rasterimage.ImageAndMetadata; +import org.openjump.core.rasterimage.RasterImageIO; +import org.openjump.core.rasterimage.RasterImageLayer; +import org.openjump.core.rasterimage.Resolution; +import org.openjump.core.rasterimage.TiffTags.TiffReadingException; +import org.openjump.core.rasterimage.sextante.OpenJUMPSextanteRasterLayer; +import org.openjump.core.rasterimage.sextante.rasterWrappers.GridWrapperNotInterpolated; +import org.openjump.core.ui.plugin.layer.pirolraster.LoadSextanteRasterImagePlugIn; +import org.saig.core.gui.swing.sldeditor.util.FormUtils; + +import com.vividsolutions.jts.geom.Envelope; +import com.vividsolutions.jump.I18N; +import com.vividsolutions.jump.workbench.WorkbenchContext; +import com.vividsolutions.jump.workbench.model.Category; +import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn; +import com.vividsolutions.jump.workbench.plugin.EnableCheckFactory; +import com.vividsolutions.jump.workbench.plugin.MultiEnableCheck; +import com.vividsolutions.jump.workbench.plugin.PlugInContext; +import com.vividsolutions.jump.workbench.ui.GenericNames; +import com.vividsolutions.jump.workbench.ui.MenuNames; +import com.vividsolutions.jump.workbench.ui.Viewport; +import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller; + +public class ChangeValueToNoDataPlugIn extends AbstractPlugIn { + public static final String PLUGINNAME = I18N + .get("org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.name"); + private String SUBMENU = I18N + .get("org.openjump.core.ui.plugin.raster.nodata.menu"); + private static final Logger LOGGER = Logger + .getLogger(ChangeNoDataValuePlugIn.class); + private Properties properties = null; + private String byteOrder = "LSBFIRST"; + private static String propertiesFile = LoadSextanteRasterImagePlugIn + .getPropertiesFile(); + NumberFormat cellFormat = null; + + public ChangeValueToNoDataPlugIn() { + + } + + public String getName() { + return PLUGINNAME; + } + + @Override + public void initialize(PlugInContext context) throws Exception { + WorkbenchContext workbenchContext = context.getWorkbenchContext(); + new FeatureInstaller(workbenchContext); + + context.getFeatureInstaller().addMainMenuPlugin(this, + new String[] { MenuNames.RASTER, SUBMENU }, getName(), false, + null, createEnableCheck(context.getWorkbenchContext())); + } + + public boolean execute(PlugInContext context) throws Exception { + reportNothingToUndoYet(context); + RasterImageLayer rLayer = (RasterImageLayer) LayerTools + .getSelectedLayerable(context, RasterImageLayer.class); + + JPanel secondPanel = new JPanel(new GridBagLayout()); + JTextPane text = new JTextPane(); + text.setOpaque(false); + text.setText(String.valueOf(rLayer.getNoDataValue())); + JTextField changing_data = new JTextField(); + changing_data.addKeyListener(new java.awt.event.KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + char vChar = e.getKeyChar(); + if (!(Character.isDigit(vChar) || (vChar == KeyEvent.VK_PERIOD) + || (vChar == KeyEvent.VK_BACK_SPACE) || (vChar == KeyEvent.VK_DELETE))) { + e.consume(); + } + } + }); + + FormUtils + .addRowInGBL( + secondPanel, + 2, + 0, + I18N.get("org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.change"), + changing_data); + FormUtils + .addRowInGBL( + secondPanel, + 3, + 0, + I18N.get("org.openjump.core.ui.plugin.raster.nodata.ChangeValueToNoDataPlugIn.tonodata"), + text); + int option = JOptionPane.showConfirmDialog(null, secondPanel, + PLUGINNAME, JOptionPane.OK_CANCEL_OPTION, + JOptionPane.PLAIN_MESSAGE); + + switch (option) { + + case JOptionPane.CANCEL_OPTION: + + break; + + case JOptionPane.OK_OPTION: + + String redName = context.getLayerManager().uniqueLayerName( + rLayer.getName()); + int boxToInt = 0; + + File flt_outFile = new File(System.getProperty("java.io.tmpdir") + .concat(File.separator).concat(redName).concat(".flt")); + File hdr_outFile = new File(System.getProperty("java.io.tmpdir") + .concat(File.separator).concat(redName).concat(".hdr")); + float olddata = Float.parseFloat(changing_data.getText()); + float newdata = (float) rLayer.getNoDataValue(); + saveFLT(flt_outFile, context, rLayer, boxToInt, olddata, newdata); + saveHDR(hdr_outFile, context, rLayer); + loadFLT(flt_outFile, context); + + } + return true; + + } + + private void saveHDR(File outFile, PlugInContext context, + RasterImageLayer rLayer) throws IOException { + OutputStream out = null; + try { + OpenJUMPSextanteRasterLayer rstLayer = new OpenJUMPSextanteRasterLayer(); + rstLayer.create(rLayer); + LOGGER.debug(getClass()); + out = new FileOutputStream(outFile); + this.cellFormat = NumberFormat.getNumberInstance(); + this.cellFormat.setMaximumFractionDigits(3); + this.cellFormat.setMinimumFractionDigits(0); + this.properties = new Properties(); + try { + FileInputStream fis = new FileInputStream(propertiesFile); + this.properties.load(fis); + this.properties + .getProperty(LoadSextanteRasterImagePlugIn.KEY_PATH); + fis.close(); + } catch (FileNotFoundException localFileNotFoundException) { + } catch (IOException e) { + context.getWorkbenchFrame().warnUser(GenericNames.ERROR); + } + PrintStream o = new PrintStream(out); + o.println("ncols " + rLayer.getOrigImageWidth()); + + o.println("nrows " + rLayer.getOrigImageHeight()); + + o.println("xllcorner " + rLayer.getWholeImageEnvelope().getMinX()); + + o.println("yllcorner " + rLayer.getWholeImageEnvelope().getMinY()); + + o.println("cellsize " + rstLayer.getLayerCellSize()); + + String sNoDataVal = Double.toString(rstLayer.getNoDataValue()); + + o.println("NODATA_value " + sNoDataVal); + o.println("byteorder " + byteOrder); + o.close(); + } catch (Exception e) { + context.getWorkbenchFrame() + .warnUser( + I18N.get("org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.Error-See-Output-Window")); + context.getWorkbenchFrame().getOutputFrame().createNewDocument(); + context.getWorkbenchFrame() + .getOutputFrame() + .addText( + "SaveImageToRasterPlugIn Exception:Export Part of FLT/ASC or modify raster to ASC not yet implemented. Please Use Sextante Plugin"); + } finally { + if (out != null) + out.close(); + } + } + + private void saveFLT(File outFile, PlugInContext context, + RasterImageLayer rLayer, int band, float oldnodata, float newnodata) + throws IOException { + FileOutputStream out = null; + try { + OpenJUMPSextanteRasterLayer rstLayer = new OpenJUMPSextanteRasterLayer(); + rstLayer.create(rLayer); + LOGGER.debug(getClass()); + out = new FileOutputStream(outFile); + this.cellFormat = NumberFormat.getNumberInstance(); + this.cellFormat.setMaximumFractionDigits(3); + this.cellFormat.setMinimumFractionDigits(0); + this.properties = new Properties(); + try { + FileInputStream fis = new FileInputStream(propertiesFile); + this.properties.load(fis); + this.properties + .getProperty(LoadSextanteRasterImagePlugIn.KEY_PATH); + fis.close(); + } catch (FileNotFoundException localFileNotFoundException) { + } catch (IOException e) { + context.getWorkbenchFrame().warnUser(GenericNames.ERROR); + } + FileChannel fileChannelOut = out.getChannel(); + GridWrapperNotInterpolated gwrapper = new GridWrapperNotInterpolated( + rstLayer, rstLayer.getLayerGridExtent()); + int nx = rstLayer.getLayerGridExtent().getNX(); + int ny = rstLayer.getLayerGridExtent().getNY(); + ByteBuffer bb = ByteBuffer.allocateDirect(nx * 4); + bb.order(ByteOrder.LITTLE_ENDIAN); + + for (int y = 0; y < ny; y++) { + for (int x = 0; x < nx; x++) { + float value = gwrapper.getCellValueAsFloat(x, y, band); + if (bb.hasRemaining()) { + if (value == oldnodata) { + bb.putFloat(newnodata); + } else { + bb.putFloat(value); + } + } else { + x--; + // c--; + bb.compact(); + fileChannelOut.write(bb); + bb.clear(); + } + } + } + bb.compact(); + fileChannelOut.write(bb); + bb.clear(); + } catch (Exception e) { + context.getWorkbenchFrame() + .warnUser( + I18N.get("org.openjump.core.ui.plugin.mousemenu.SaveDatasetsPlugIn.Error-See-Output-Window")); + context.getWorkbenchFrame().getOutputFrame().createNewDocument(); + context.getWorkbenchFrame() + .getOutputFrame() + .addText( + "SaveImageToRasterPlugIn Exception:Export Part of FLT/ASC or modify raster to ASC not yet implemented. Please Use Sextante Plugin"); + } finally { + if (out != null) + out.close(); + } + } + + private void loadFLT(File flt_outFile, PlugInContext context) + throws NoninvertibleTransformException, TiffReadingException, + Exception { + + RasterImageIO rasterImageIO = new RasterImageIO(); + Viewport viewport = context.getWorkbenchContext().getLayerViewPanel() + .getViewport(); + Resolution requestedRes = RasterImageIO + .calcRequestedResolution(viewport); + ImageAndMetadata imageAndMetadata = rasterImageIO.loadImage( + context.getWorkbenchContext(), flt_outFile.getAbsolutePath(), + null, viewport.getEnvelopeInModelCoordinates(), requestedRes); + + GridFloat gf = new GridFloat(flt_outFile.getAbsolutePath()); + + Envelope imageEnvelope = new Envelope(gf.getXllCorner(), + gf.getXllCorner() + gf.getnCols() * gf.getCellSize(), + gf.getYllCorner(), gf.getYllCorner() + gf.getnRows() + * gf.getCellSize()); + + RasterImageLayer ril = new RasterImageLayer(flt_outFile.getName(), + context.getWorkbenchContext().getLayerManager(), + flt_outFile.getAbsolutePath(), imageAndMetadata.getImage(), + imageEnvelope); + String catName = "Temp";// StandardCategoryNames.RESULT; + try { + catName = ((Category) context.getLayerNamePanel() + .getSelectedCategories().toArray()[0]).getName(); + } catch (RuntimeException e1) { + } + context.getLayerManager().addLayerable(catName, ril); + } + + public static MultiEnableCheck createEnableCheck( + WorkbenchContext workbenchContext) { + EnableCheckFactory checkFactory = new EnableCheckFactory( + workbenchContext); + MultiEnableCheck multiEnableCheck = new MultiEnableCheck(); + + multiEnableCheck.add( + checkFactory.createExactlyNLayerablesMustBeSelectedCheck(1, + RasterImageLayer.class)).add( + checkFactory + .createRasterImageLayerExactlyNBandsMustExistCheck(1)); + + return multiEnableCheck; + } + +} \ No newline at end of file Property changes on: core/trunk/src/org/openjump/core/ui/plugin/raster/nodata/ChangeValueToNoDataPlugIn.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel