Revision: 5971 http://sourceforge.net/p/jump-pilot/code/5971 Author: ma15569 Date: 2018-10-10 09:32:02 +0000 (Wed, 10 Oct 2018) Log Message: ----------- Moved SlopeAspectHillShadePlugin to Geomorphometry tree node
Modified Paths: -------------- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/ChangeLog plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle.properties plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_en.properties plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_it.properties plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/ui/PersonalTreeNode.java Added Paths: ----------- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java Removed Paths: ------------- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/hydrology/SlopeAspectHillshadePlugIn.java Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/ChangeLog =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/ChangeLog 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/ChangeLog 2018-10-10 09:32:02 UTC (rev 5971) @@ -3,6 +3,9 @@ # 2. make sure that lines break at 80 chars for constricted display situations #<-------------------------------- 80 chars ----------------------------------># +2018-10-04 Giuseppe Aruta. Moved SlopeAspectHillShadePlugin to Geomorphometry + tree node + 2018-10-04 Giuseppe Aruta. PluginUtils class - Kinematic Local Excess Model. *Export to csv: use "," instead of tab for data separation to facilitate Excell import (as sugested by users) Added: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java (rev 0) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java 2018-10-10 09:32:02 UTC (rev 5971) @@ -0,0 +1,458 @@ +package com.geomaticaeambiente.klemgui.plugin.geomorphometry; + +import java.awt.Dialog; +import java.io.File; +import java.io.IOException; + +import javax.swing.JButton; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextField; + +import com.geomaticaeambiente.klemgui.exceptions.WarningException; +import com.geomaticaeambiente.klemgui.ui.CustomComboBox; +import com.geomaticaeambiente.klemgui.ui.GUIUtils; +import com.geomaticaeambiente.klemgui.ui.InitialDialog; +import com.geomaticaeambiente.klemgui.ui.LayerablesList; +import com.geomaticaeambiente.klemgui.ui.MainPanel; +import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; +import com.geomaticaeambiente.klemgui.utils.ActionObject; +import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; +import com.geomaticaeambiente.klemgui.utils.GeometryUtils; +import com.geomaticaeambiente.klemgui.utils.InitialData; +import com.geomaticaeambiente.klemgui.utils.PluginUtils; +import com.geomaticaeambiente.klemgui.utils.RasterUtils; +import com.geomaticaeambiente.openjump.klem.aspect.AspectCalculator; +import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; +import com.geomaticaeambiente.openjump.klem.hillshade.HillshadeCalculator; +import com.geomaticaeambiente.openjump.klem.slope.SlopeCalculator; +import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeAlgo; +import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeUnits; +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jump.util.StringUtil; +import com.vividsolutions.jump.workbench.model.Layer; +import com.vividsolutions.jump.workbench.plugin.PlugInContext; +import com.vividsolutions.jump.workbench.ui.ErrorDialog; + +/** + * + * @author Geomatica + */ +public class SlopeAspectHillshadePlugIn extends AbstractInputKlemPlugin { + + public SlopeAspectHillshadePlugIn(PlugInContext context, + InitialDialog initialDialog, LayerablesList layerablesList) { + super(context, initialDialog); + this.context = context; + this.initialDialog = initialDialog; + this.layerablesList = layerablesList; + initialDialog.setModalityType(Dialog.ModalityType.MODELESS); + } + + @Override + public InitialData setInitialData() { + + final InitialData initialData = new InitialData(); + // DEM + initialData + .setParam_Label_TextBox(GUIUtils.setGUILabel(DEM_LABEL), + PluginUtils.getRasterImageLayers(layerablesList + .getLayerables()), GUIUtils.INPUT);// dem + // combobox + // with + // rasterImageLayer + + // Bluelines + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.Bluelines.label")), + PluginUtils.getLayers(layerablesList.getLayerables()), + GUIUtils.INPUT); + + // Slope algorithm + initialData.setParam_Labels(new String[] { PluginUtils.getResources() + .getString("SlopeAspectHillshadePlugIn.SlopeAlgo.label") }, + GUIUtils.OTHER); + initialData + .setParam_Action( + new ActionObject( + new String[] { + PluginUtils + .getResources() + .getString( + "SlopeAspectHillshadePlugIn.SlopeHorn.label"), + PluginUtils + .getResources() + .getString( + "SlopeAspectHillshadePlugIn.SlopeLocal.label") }), + GUIUtils.OTHER);// radio button da mouse da layer + + // Slope units + initialData.setParam_Labels(new String[] { PluginUtils.getResources() + .getString("SlopeAspectHillshadePlugIn.SlopeUnits.label") }, + GUIUtils.OTHER); + initialData + .setParam_Action( + new ActionObject( + new String[] { + PluginUtils + .getResources() + .getString( + "SlopeAspectHillshadePlugIn.SlopeUnitsPercent.label"), + PluginUtils + .getResources() + .getString( + "SlopeAspectHillshadePlugIn.SlopeUnitsDegrees.label") }), + GUIUtils.OTHER);// radio button da mouse da layer + + // Hillshade parameters; + initialData.setParam_Labels( + new String[] { PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.HillshadeParms.label") }, + GUIUtils.OTHER); + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.HillshadeZenith.label")), + "", GUIUtils.OTHER); + initialData.setParam_Label_TextBox( + GUIUtils.setGUILabel(PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.HillshadeAzimuth.label")), + "", GUIUtils.OTHER); + + // Output + initialData.setParam_Label_TextBox_Button( + GUIUtils.setGUILabel(SLOPE_LABEL), "", new ActionObject(""), + GUIUtils.OUTPUT); // JTextField + initialData.setParam_Label_TextBox_Button( + GUIUtils.setGUILabel(ASPECT_LABEL), "", new ActionObject(""), + GUIUtils.OUTPUT); // JTextField + initialData.setParam_Label_TextBox_Button( + GUIUtils.setGUILabel(HILLSHADE_LABEL), "", + new ActionObject(""), GUIUtils.OUTPUT); // JTextField + + return initialData; + + } + + @Override + public ComponentsTreeMap setComponentsActions( + final ComponentsTreeMap personalTreeMap) { + + // Radio button slope algo + final JRadioButton jRadioButton_algo_horn = (JRadioButton) personalTreeMap + .getComponent("01", GUIUtils.OTHER, 0); + final JRadioButton jRadioButton_algo_local = (JRadioButton) personalTreeMap + .getComponent("01", GUIUtils.OTHER, 1); + + // Radio button slope units + final JRadioButton jRadioButton_units_percent = (JRadioButton) personalTreeMap + .getComponent("03", GUIUtils.OTHER, 0); + final JRadioButton jRadioButton_units_degs = (JRadioButton) personalTreeMap + .getComponent("03", GUIUtils.OTHER, 1); + + // Zenith + final JTextField jTextField_Zenith = (JTextField) personalTreeMap + .getComponent("05", GUIUtils.OTHER, 1); + jTextField_Zenith.setText("45"); + + // Azimuth + final JTextField jTextField_Azimuth = (JTextField) personalTreeMap + .getComponent("06", GUIUtils.OTHER, 1); // jtext field coord y + jTextField_Azimuth.setText("315"); + + jRadioButton_algo_horn.setSelected(true); + jRadioButton_units_percent.setSelected(true); + + final JTextField outSlope_TextField = (JTextField) personalTreeMap + .getComponent("00", GUIUtils.OUTPUT, 1); + final JButton outSlope_Button = (JButton) personalTreeMap.getComponent( + "00", GUIUtils.OUTPUT, 2); + outSlope_Button.setIcon(PluginUtils.getFolderIcon()); + outSlope_Button.addActionListener(GUIUtils + .setSaveRasterTif(outSlope_TextField)); + + final JTextField outAspect_TextField = (JTextField) personalTreeMap + .getComponent("01", GUIUtils.OUTPUT, 1); + final JButton outAspect_Button = (JButton) personalTreeMap + .getComponent("01", GUIUtils.OUTPUT, 2); + outAspect_Button.setIcon(PluginUtils.getFolderIcon()); + outAspect_Button.addActionListener(GUIUtils + .setSaveRasterTif(outAspect_TextField)); + + final JTextField outHillShade_TextField = (JTextField) personalTreeMap + .getComponent("02", GUIUtils.OUTPUT, 1); + final JButton outHillshade_Button = (JButton) personalTreeMap + .getComponent("02", GUIUtils.OUTPUT, 2); + outHillshade_Button.setIcon(PluginUtils.getFolderIcon()); + outHillshade_Button.addActionListener(GUIUtils + .setSaveRasterTif(outHillShade_TextField)); + + return personalTreeMap; + + } + + @Override + public JPanel buildPluginPanel(final ComponentsTreeMap componentsWithActions) { + if (mainPanel != null) { + return mainPanel; + } + mainPanel = new MainPanel(super.getInitialDialog(), + componentsWithActions, false, false, true, PluginUtils + .getResources().getString( + "MainPanel.ExecuteButton.text"), layerablesList) { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Override + public void rightButton() { + try { + + // DEM + final String demFileFullName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.INPUT, 1)); + + // Bluelines + final Layer bluelinesLayer = PluginUtils + .getLayerSelected((CustomComboBox.LayerComboBox) componentsWithActions + .getComponent("01", GUIUtils.INPUT, 1)); + LineString[] bluelines = null; + if (bluelinesLayer != null) { + bluelines = GeometryUtils + .getLineStringsFromFeatures(bluelinesLayer + .getFeatureCollectionWrapper()); + } + + // Slope algo + final boolean slopeAlgoHorn = GUIUtils + .componentIsSelected(componentsWithActions + .getComponent("01", GUIUtils.OTHER, 0)); + + // Slope units + final boolean slopeUnitsPercent = GUIUtils + .componentIsSelected(componentsWithActions + .getComponent("03", GUIUtils.OTHER, 0)); + + // Zenith + final String zenith = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "05", GUIUtils.OTHER, 1)); + + // Azimuth + final String azimuth = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "06", GUIUtils.OTHER, 1)); + + // Out rasters + final String slopeRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "00", GUIUtils.OUTPUT, 1)); + final String aspectRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "01", GUIUtils.OUTPUT, 1)); + final String hillshadeRasterName = GUIUtils + .getStringValue(componentsWithActions.getComponent( + "02", GUIUtils.OUTPUT, 1)); + + checkValues(demFileFullName, zenith, azimuth, + slopeRasterName, aspectRasterName, + hillshadeRasterName); + + // Retrieve inputs + final DoubleBasicGrid demGrid = RasterUtils + .getDoubleBasicGrid((CustomComboBox.RasterComboBox) componentsWithActions + .getComponent("00", GUIUtils.INPUT, 1)); + + // Execute + DoubleBasicGrid slopeGrid = null; + DoubleBasicGrid aspectGrid = null; + if (!slopeRasterName.equals("") + || !hillshadeRasterName.equals("")) { + // Calcualte slope: used also for hillshade + SlopeAlgo slopeAlgo = SlopeAlgo.HORN; + SlopeUnits slopeUnits = SlopeUnits.PERCENT; + if (!slopeAlgoHorn) { + slopeAlgo = SlopeAlgo.LOCAL; + } + if (!slopeUnitsPercent) { + slopeUnits = SlopeUnits.DEGREES; + } + final SlopeCalculator sc = new SlopeCalculator(demGrid, + bluelines, 100d, slopeAlgo, slopeUnits); + slopeGrid = sc.calculate(); + RasterUtils.saveOutputRasterAsTiff(slopeGrid, new File( + slopeRasterName)); + } + + if (!aspectRasterName.equals("") + || !hillshadeRasterName.equals("")) { + // Aspect + final AspectCalculator ac = new AspectCalculator( + demGrid, bluelines, 100d); + aspectGrid = ac.calculate(); + RasterUtils.saveOutputRasterAsTiff(aspectGrid, + new File(aspectRasterName)); + } + + if (!hillshadeRasterName.equals("") && slopeGrid != null + && aspectGrid != null) { + // Hillshade + final double zenithDegs = Double.parseDouble(zenith); + final double azimuthDegs = Double.parseDouble(azimuth); + + if (slopeUnitsPercent) { + + for (int r = 0; r < slopeGrid.getRowCount(); r++) { + for (int c = 0; c < slopeGrid.getColumnCount(); c++) { + if (slopeGrid.isNoData(slopeGrid.getValue( + c, r))) { + continue; + } + final double slopeDegs = Math + .toDegrees(Math.atan(slopeGrid + .getValue(c, r) / 100)); + slopeGrid.setValue(c, r, slopeDegs); + } + } + + } + + final HillshadeCalculator hc = new HillshadeCalculator( + slopeGrid, aspectGrid, zenithDegs, azimuthDegs); + final DoubleBasicGrid hillshadeGrid = hc.calculate(); + RasterUtils.saveOutputRasterAsTiff(hillshadeGrid, + new File(hillshadeRasterName)); + } + + // Display raster on OJ from file + if (!slopeRasterName.equals("")) { + RasterUtils.displayRasterFileOnOJ(context + .getWorkbenchContext(), new File( + slopeRasterName), null); + } + if (!aspectRasterName.equals("")) { + RasterUtils.displayRasterFileOnOJ(context + .getWorkbenchContext(), new File( + aspectRasterName), null); + } + if (!hillshadeRasterName.equals("")) { + RasterUtils.displayRasterFileOnOJ(context + .getWorkbenchContext(), new File( + hillshadeRasterName), null); + } + + JOptionPane.showMessageDialog( + super.getInitialDialog(), + PluginUtils.getResources().getString( + "SetWorkspacePlugin.Done.message"), + PluginUtils.plugInName, + JOptionPane.INFORMATION_MESSAGE); + + } catch (final WarningException ex) { + JOptionPane.showMessageDialog(super.getInitialDialog(), + ex.getMessage(), PluginUtils.plugInName, + JOptionPane.WARNING_MESSAGE); + } catch (final Exception ex) { + ErrorDialog.show(super.getInitialDialog(), + PluginUtils.plugInName, ex.toString(), + StringUtil.stackTrace(ex)); + } + } + + @Override + public void leftButton() { + throw new UnsupportedOperationException("Not supported yet."); // To + // change + // body + // of + // generated + // methods, + // choose + // Tools + // | + // Templates. + } + + @Override + public void centerButton() { + throw new UnsupportedOperationException("Not supported yet."); // To + // change + // body + // of + // generated + // methods, + // choose + // Tools + // | + // Templates. + } + + }; + return mainPanel; + } + + @Override + public String toString() { + return PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.PlugInName.label"); + } + + private void checkValues(String dem, String zenith, String azimuth, + String outSlope, String outAspect, String outHillshade) + throws IOException, Exception { + + GUIUtils.checkStringValue(dem, DEM_LABEL); + + if (outSlope.equals("") && outAspect.equals("") + && outHillshade.equals("")) { + throw new WarningException(PluginUtils.getResources().getString( + "Check.AtLeastOneOutputRequired")); + } + + if (!outSlope.equals("")) { + GUIUtils.checkFileValue(outSlope, GUIUtils.getOutputRasterString()); + } + if (!outAspect.equals("")) { + GUIUtils.checkFileValue(outAspect, GUIUtils.getOutputRasterString()); + } + if (!outHillshade.equals("")) { + GUIUtils.checkStringValue(zenith, XCOORD_LABEL); + GUIUtils.checkStringValue(azimuth, YCOORD_LABEL); + GUIUtils.checkFileValue(outHillshade, + GUIUtils.getOutputRasterString()); + } + } + + private Object makeObj(final String item) { + return new Object() { + @Override + public String toString() { + return item; + } + }; + } + + private MainPanel mainPanel; + private final PlugInContext context; + // private RasterImageLayer[] ar_rasterImageLayers; + private final InitialDialog initialDialog; + // private Layer[] layers; + private final String DEM_LABEL = PluginUtils.getResources().getString( + "KlemGUI.InputDem.label"); + // private final String OUT_RASTER_LABEL = + // PluginUtils.getResources().getString("KlemGUI.OutputRaster.label"); + private final String XCOORD_LABEL = "x"; + private final String YCOORD_LABEL = "y"; + private final String SLOPE_LABEL = PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.SlopeLabel"); + private final String ASPECT_LABEL = PluginUtils.getResources().getString( + "SlopeAspectHillshadePlugIn.AspectLabel"); + private final String HILLSHADE_LABEL = PluginUtils.getResources() + .getString("SlopeAspectHillshadePlugIn.HillShadeLabel"); + + private final LayerablesList layerablesList; +} Property changes on: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/geomorphometry/SlopeAspectHillshadePlugIn.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Deleted: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/hydrology/SlopeAspectHillshadePlugIn.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/hydrology/SlopeAspectHillshadePlugIn.java 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/plugin/hydrology/SlopeAspectHillshadePlugIn.java 2018-10-10 09:32:02 UTC (rev 5971) @@ -1,458 +0,0 @@ -package com.geomaticaeambiente.klemgui.plugin.hydrology; - -import java.awt.Dialog; -import java.io.File; -import java.io.IOException; - -import javax.swing.JButton; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JRadioButton; -import javax.swing.JTextField; - -import com.geomaticaeambiente.klemgui.exceptions.WarningException; -import com.geomaticaeambiente.klemgui.ui.CustomComboBox; -import com.geomaticaeambiente.klemgui.ui.GUIUtils; -import com.geomaticaeambiente.klemgui.ui.InitialDialog; -import com.geomaticaeambiente.klemgui.ui.LayerablesList; -import com.geomaticaeambiente.klemgui.ui.MainPanel; -import com.geomaticaeambiente.klemgui.utils.AbstractInputKlemPlugin; -import com.geomaticaeambiente.klemgui.utils.ActionObject; -import com.geomaticaeambiente.klemgui.utils.ComponentsTreeMap; -import com.geomaticaeambiente.klemgui.utils.GeometryUtils; -import com.geomaticaeambiente.klemgui.utils.InitialData; -import com.geomaticaeambiente.klemgui.utils.PluginUtils; -import com.geomaticaeambiente.klemgui.utils.RasterUtils; -import com.geomaticaeambiente.openjump.klem.aspect.AspectCalculator; -import com.geomaticaeambiente.openjump.klem.grid.DoubleBasicGrid; -import com.geomaticaeambiente.openjump.klem.hillshade.HillshadeCalculator; -import com.geomaticaeambiente.openjump.klem.slope.SlopeCalculator; -import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeAlgo; -import com.geomaticaeambiente.openjump.klem.slope.SlopeStripe.SlopeUnits; -import com.vividsolutions.jts.geom.LineString; -import com.vividsolutions.jump.util.StringUtil; -import com.vividsolutions.jump.workbench.model.Layer; -import com.vividsolutions.jump.workbench.plugin.PlugInContext; -import com.vividsolutions.jump.workbench.ui.ErrorDialog; - -/** - * - * @author Geomatica - */ -public class SlopeAspectHillshadePlugIn extends AbstractInputKlemPlugin { - - public SlopeAspectHillshadePlugIn(PlugInContext context, - InitialDialog initialDialog, LayerablesList layerablesList) { - super(context, initialDialog); - this.context = context; - this.initialDialog = initialDialog; - this.layerablesList = layerablesList; - initialDialog.setModalityType(Dialog.ModalityType.MODELESS); - } - - @Override - public InitialData setInitialData() { - - final InitialData initialData = new InitialData(); - // DEM - initialData - .setParam_Label_TextBox(GUIUtils.setGUILabel(DEM_LABEL), - PluginUtils.getRasterImageLayers(layerablesList - .getLayerables()), GUIUtils.INPUT);// dem - // combobox - // with - // rasterImageLayer - - // Bluelines - initialData.setParam_Label_TextBox( - GUIUtils.setGUILabel(PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.Bluelines.label")), - PluginUtils.getLayers(layerablesList.getLayerables()), - GUIUtils.INPUT); - - // Slope algorithm - initialData.setParam_Labels(new String[] { PluginUtils.getResources() - .getString("SlopeAspectHillshadePlugIn.SlopeAlgo.label") }, - GUIUtils.OTHER); - initialData - .setParam_Action( - new ActionObject( - new String[] { - PluginUtils - .getResources() - .getString( - "SlopeAspectHillshadePlugIn.SlopeHorn.label"), - PluginUtils - .getResources() - .getString( - "SlopeAspectHillshadePlugIn.SlopeLocal.label") }), - GUIUtils.OTHER);// radio button da mouse da layer - - // Slope units - initialData.setParam_Labels(new String[] { PluginUtils.getResources() - .getString("SlopeAspectHillshadePlugIn.SlopeUnits.label") }, - GUIUtils.OTHER); - initialData - .setParam_Action( - new ActionObject( - new String[] { - PluginUtils - .getResources() - .getString( - "SlopeAspectHillshadePlugIn.SlopeUnitsPercent.label"), - PluginUtils - .getResources() - .getString( - "SlopeAspectHillshadePlugIn.SlopeUnitsDegrees.label") }), - GUIUtils.OTHER);// radio button da mouse da layer - - // Hillshade parameters; - initialData.setParam_Labels( - new String[] { PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.HillshadeParms.label") }, - GUIUtils.OTHER); - initialData.setParam_Label_TextBox( - GUIUtils.setGUILabel(PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.HillshadeZenith.label")), - "", GUIUtils.OTHER); - initialData.setParam_Label_TextBox( - GUIUtils.setGUILabel(PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.HillshadeAzimuth.label")), - "", GUIUtils.OTHER); - - // Output - initialData.setParam_Label_TextBox_Button( - GUIUtils.setGUILabel(SLOPE_LABEL), "", new ActionObject(""), - GUIUtils.OUTPUT); // JTextField - initialData.setParam_Label_TextBox_Button( - GUIUtils.setGUILabel(ASPECT_LABEL), "", new ActionObject(""), - GUIUtils.OUTPUT); // JTextField - initialData.setParam_Label_TextBox_Button( - GUIUtils.setGUILabel(HILLSHADE_LABEL), "", - new ActionObject(""), GUIUtils.OUTPUT); // JTextField - - return initialData; - - } - - @Override - public ComponentsTreeMap setComponentsActions( - final ComponentsTreeMap personalTreeMap) { - - // Radio button slope algo - final JRadioButton jRadioButton_algo_horn = (JRadioButton) personalTreeMap - .getComponent("01", GUIUtils.OTHER, 0); - final JRadioButton jRadioButton_algo_local = (JRadioButton) personalTreeMap - .getComponent("01", GUIUtils.OTHER, 1); - - // Radio button slope units - final JRadioButton jRadioButton_units_percent = (JRadioButton) personalTreeMap - .getComponent("03", GUIUtils.OTHER, 0); - final JRadioButton jRadioButton_units_degs = (JRadioButton) personalTreeMap - .getComponent("03", GUIUtils.OTHER, 1); - - // Zenith - final JTextField jTextField_Zenith = (JTextField) personalTreeMap - .getComponent("05", GUIUtils.OTHER, 1); - jTextField_Zenith.setText("45"); - - // Azimuth - final JTextField jTextField_Azimuth = (JTextField) personalTreeMap - .getComponent("06", GUIUtils.OTHER, 1); // jtext field coord y - jTextField_Azimuth.setText("315"); - - jRadioButton_algo_horn.setSelected(true); - jRadioButton_units_percent.setSelected(true); - - final JTextField outSlope_TextField = (JTextField) personalTreeMap - .getComponent("00", GUIUtils.OUTPUT, 1); - final JButton outSlope_Button = (JButton) personalTreeMap.getComponent( - "00", GUIUtils.OUTPUT, 2); - outSlope_Button.setIcon(PluginUtils.getFolderIcon()); - outSlope_Button.addActionListener(GUIUtils - .setSaveRasterTif(outSlope_TextField)); - - final JTextField outAspect_TextField = (JTextField) personalTreeMap - .getComponent("01", GUIUtils.OUTPUT, 1); - final JButton outAspect_Button = (JButton) personalTreeMap - .getComponent("01", GUIUtils.OUTPUT, 2); - outAspect_Button.setIcon(PluginUtils.getFolderIcon()); - outAspect_Button.addActionListener(GUIUtils - .setSaveRasterTif(outAspect_TextField)); - - final JTextField outHillShade_TextField = (JTextField) personalTreeMap - .getComponent("02", GUIUtils.OUTPUT, 1); - final JButton outHillshade_Button = (JButton) personalTreeMap - .getComponent("02", GUIUtils.OUTPUT, 2); - outHillshade_Button.setIcon(PluginUtils.getFolderIcon()); - outHillshade_Button.addActionListener(GUIUtils - .setSaveRasterTif(outHillShade_TextField)); - - return personalTreeMap; - - } - - @Override - public JPanel buildPluginPanel(final ComponentsTreeMap componentsWithActions) { - if (mainPanel != null) { - return mainPanel; - } - mainPanel = new MainPanel(super.getInitialDialog(), - componentsWithActions, false, false, true, PluginUtils - .getResources().getString( - "MainPanel.ExecuteButton.text"), layerablesList) { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public void rightButton() { - try { - - // DEM - final String demFileFullName = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "00", GUIUtils.INPUT, 1)); - - // Bluelines - final Layer bluelinesLayer = PluginUtils - .getLayerSelected((CustomComboBox.LayerComboBox) componentsWithActions - .getComponent("01", GUIUtils.INPUT, 1)); - LineString[] bluelines = null; - if (bluelinesLayer != null) { - bluelines = GeometryUtils - .getLineStringsFromFeatures(bluelinesLayer - .getFeatureCollectionWrapper()); - } - - // Slope algo - final boolean slopeAlgoHorn = GUIUtils - .componentIsSelected(componentsWithActions - .getComponent("01", GUIUtils.OTHER, 0)); - - // Slope units - final boolean slopeUnitsPercent = GUIUtils - .componentIsSelected(componentsWithActions - .getComponent("03", GUIUtils.OTHER, 0)); - - // Zenith - final String zenith = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "05", GUIUtils.OTHER, 1)); - - // Azimuth - final String azimuth = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "06", GUIUtils.OTHER, 1)); - - // Out rasters - final String slopeRasterName = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "00", GUIUtils.OUTPUT, 1)); - final String aspectRasterName = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "01", GUIUtils.OUTPUT, 1)); - final String hillshadeRasterName = GUIUtils - .getStringValue(componentsWithActions.getComponent( - "02", GUIUtils.OUTPUT, 1)); - - checkValues(demFileFullName, zenith, azimuth, - slopeRasterName, aspectRasterName, - hillshadeRasterName); - - // Retrieve inputs - final DoubleBasicGrid demGrid = RasterUtils - .getDoubleBasicGrid((CustomComboBox.RasterComboBox) componentsWithActions - .getComponent("00", GUIUtils.INPUT, 1)); - - // Execute - DoubleBasicGrid slopeGrid = null; - DoubleBasicGrid aspectGrid = null; - if (!slopeRasterName.equals("") - || !hillshadeRasterName.equals("")) { - // Calcualte slope: used also for hillshade - SlopeAlgo slopeAlgo = SlopeAlgo.HORN; - SlopeUnits slopeUnits = SlopeUnits.PERCENT; - if (!slopeAlgoHorn) { - slopeAlgo = SlopeAlgo.LOCAL; - } - if (!slopeUnitsPercent) { - slopeUnits = SlopeUnits.DEGREES; - } - final SlopeCalculator sc = new SlopeCalculator(demGrid, - bluelines, 100d, slopeAlgo, slopeUnits); - slopeGrid = sc.calculate(); - RasterUtils.saveOutputRasterAsTiff(slopeGrid, new File( - slopeRasterName)); - } - - if (!aspectRasterName.equals("") - || !hillshadeRasterName.equals("")) { - // Aspect - final AspectCalculator ac = new AspectCalculator( - demGrid, bluelines, 100d); - aspectGrid = ac.calculate(); - RasterUtils.saveOutputRasterAsTiff(aspectGrid, - new File(aspectRasterName)); - } - - if (!hillshadeRasterName.equals("") && slopeGrid != null - && aspectGrid != null) { - // Hillshade - final double zenithDegs = Double.parseDouble(zenith); - final double azimuthDegs = Double.parseDouble(azimuth); - - if (slopeUnitsPercent) { - - for (int r = 0; r < slopeGrid.getRowCount(); r++) { - for (int c = 0; c < slopeGrid.getColumnCount(); c++) { - if (slopeGrid.isNoData(slopeGrid.getValue( - c, r))) { - continue; - } - final double slopeDegs = Math - .toDegrees(Math.atan(slopeGrid - .getValue(c, r) / 100)); - slopeGrid.setValue(c, r, slopeDegs); - } - } - - } - - final HillshadeCalculator hc = new HillshadeCalculator( - slopeGrid, aspectGrid, zenithDegs, azimuthDegs); - final DoubleBasicGrid hillshadeGrid = hc.calculate(); - RasterUtils.saveOutputRasterAsTiff(hillshadeGrid, - new File(hillshadeRasterName)); - } - - // Display raster on OJ from file - if (!slopeRasterName.equals("")) { - RasterUtils.displayRasterFileOnOJ(context - .getWorkbenchContext(), new File( - slopeRasterName), null); - } - if (!aspectRasterName.equals("")) { - RasterUtils.displayRasterFileOnOJ(context - .getWorkbenchContext(), new File( - aspectRasterName), null); - } - if (!hillshadeRasterName.equals("")) { - RasterUtils.displayRasterFileOnOJ(context - .getWorkbenchContext(), new File( - hillshadeRasterName), null); - } - - JOptionPane.showMessageDialog( - super.getInitialDialog(), - PluginUtils.getResources().getString( - "SetWorkspacePlugin.Done.message"), - PluginUtils.plugInName, - JOptionPane.INFORMATION_MESSAGE); - - } catch (final WarningException ex) { - JOptionPane.showMessageDialog(super.getInitialDialog(), - ex.getMessage(), PluginUtils.plugInName, - JOptionPane.WARNING_MESSAGE); - } catch (final Exception ex) { - ErrorDialog.show(super.getInitialDialog(), - PluginUtils.plugInName, ex.toString(), - StringUtil.stackTrace(ex)); - } - } - - @Override - public void leftButton() { - throw new UnsupportedOperationException("Not supported yet."); // To - // change - // body - // of - // generated - // methods, - // choose - // Tools - // | - // Templates. - } - - @Override - public void centerButton() { - throw new UnsupportedOperationException("Not supported yet."); // To - // change - // body - // of - // generated - // methods, - // choose - // Tools - // | - // Templates. - } - - }; - return mainPanel; - } - - @Override - public String toString() { - return PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.PlugInName.label"); - } - - private void checkValues(String dem, String zenith, String azimuth, - String outSlope, String outAspect, String outHillshade) - throws IOException, Exception { - - GUIUtils.checkStringValue(dem, DEM_LABEL); - - if (outSlope.equals("") && outAspect.equals("") - && outHillshade.equals("")) { - throw new WarningException(PluginUtils.getResources().getString( - "Check.AtLeastOneOutputRequired")); - } - - if (!outSlope.equals("")) { - GUIUtils.checkFileValue(outSlope, GUIUtils.getOutputRasterString()); - } - if (!outAspect.equals("")) { - GUIUtils.checkFileValue(outAspect, GUIUtils.getOutputRasterString()); - } - if (!outHillshade.equals("")) { - GUIUtils.checkStringValue(zenith, XCOORD_LABEL); - GUIUtils.checkStringValue(azimuth, YCOORD_LABEL); - GUIUtils.checkFileValue(outHillshade, - GUIUtils.getOutputRasterString()); - } - } - - private Object makeObj(final String item) { - return new Object() { - @Override - public String toString() { - return item; - } - }; - } - - private MainPanel mainPanel; - private final PlugInContext context; - // private RasterImageLayer[] ar_rasterImageLayers; - private final InitialDialog initialDialog; - // private Layer[] layers; - private final String DEM_LABEL = PluginUtils.getResources().getString( - "KlemGUI.InputDem.label"); - // private final String OUT_RASTER_LABEL = - // PluginUtils.getResources().getString("KlemGUI.OutputRaster.label"); - private final String XCOORD_LABEL = "x"; - private final String YCOORD_LABEL = "y"; - private final String SLOPE_LABEL = PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.SlopeLabel"); - private final String ASPECT_LABEL = PluginUtils.getResources().getString( - "SlopeAspectHillshadePlugIn.AspectLabel"); - private final String HILLSHADE_LABEL = PluginUtils.getResources() - .getString("SlopeAspectHillshadePlugIn.HillShadeLabel"); - - private final LayerablesList layerablesList; -} Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle.properties =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle.properties 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle.properties 2018-10-10 09:32:02 UTC (rev 5971) @@ -455,3 +455,5 @@ OptionPlugin.PlugInName.label= Output raster options OutpuTab.export_only_as_results=Export table and diagrams as OpenJUMP results (faster) OutpuTab.export_results_and_file=Export table and diagrams as OpenJUMP results and as .ods file (slower) + +KlemGUI.TreeGeomorphometry.label=Geomorphometry and surface analysis \ No newline at end of file Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_en.properties =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_en.properties 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_en.properties 2018-10-10 09:32:02 UTC (rev 5971) @@ -445,3 +445,5 @@ OptionPlugin.Load-raster = Load output raster in the view OptionPlugin.Load-symbology = Apply symbology (if defined) OptionPlugin.PlugInName.label= Output raster options + +KlemGUI.TreeGeomorphometry.label=Geomorphometry and surface analysis \ No newline at end of file Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_it.properties =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_it.properties 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/resources/Bundle_it.properties 2018-10-10 09:32:02 UTC (rev 5971) @@ -445,3 +445,5 @@ OptionPlugin.Load-raster = Carica il raster di risultato nella vista OptionPlugin.Load-symbology = Applica la simbologia (se gi\xE0 definita) OptionPlugin.PlugInName.label= Opzioni raster di risultato + +KlemGUI.TreeGeomorphometry.label=Geomorfometria ed analisi di superficie \ No newline at end of file Modified: plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/ui/PersonalTreeNode.java =================================================================== --- plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/ui/PersonalTreeNode.java 2018-10-10 09:03:45 UTC (rev 5970) +++ plug-ins/OpenKLEM/OpenKLEMOpenJUMP/trunk/src/com/geomaticaeambiente/klemgui/ui/PersonalTreeNode.java 2018-10-10 09:32:02 UTC (rev 5971) @@ -2,6 +2,7 @@ import javax.swing.tree.DefaultMutableTreeNode; +import com.geomaticaeambiente.klemgui.plugin.geomorphometry.SlopeAspectHillshadePlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.CurveNumberPlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.DemFillerPlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.FlowDirectionPlugIn; @@ -9,7 +10,7 @@ import com.geomaticaeambiente.klemgui.plugin.hydrology.HydrologyGroupsPlugin; import com.geomaticaeambiente.klemgui.plugin.hydrology.HyetographPlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.RoutingTimePlugIn; -import com.geomaticaeambiente.klemgui.plugin.hydrology.SlopeAspectHillshadePlugIn; +//import com.geomaticaeambiente.klemgui.plugin.hydrology.SlopeAspectHillshadePlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.UpslopeAreaPlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.WatershedPlugIn; import com.geomaticaeambiente.klemgui.plugin.hydrology.hydrographs.HydrographGeomorphologicalPlugin; @@ -106,15 +107,22 @@ treeNode2.add(treeNode3); treeNode1.add(treeNode2); + treeNode2 = new DefaultMutableTreeNode(PluginUtils.getResources() + .getString("KlemGUI.TreeGeomorphometry.label")); + treeNode3 = new javax.swing.tree.DefaultMutableTreeNode( + new SlopeAspectHillshadePlugIn(context, initialDialog, + layerablesList)); + treeNode2.add(treeNode3); + treeNode1.add(treeNode2); treeNode2 = new DefaultMutableTreeNode(PluginUtils.getResources() .getString("KlemGUI.HydrologyTools.label")); treeNode3 = new javax.swing.tree.DefaultMutableTreeNode( new DemFillerPlugIn(context, initialDialog, layerablesList)); treeNode2.add(treeNode3); - treeNode3 = new javax.swing.tree.DefaultMutableTreeNode( - new SlopeAspectHillshadePlugIn(context, initialDialog, - layerablesList)); + // treeNode3 = new javax.swing.tree.DefaultMutableTreeNode( + // new SlopeAspectHillshadePlugIn(context, initialDialog, + // layerablesList)); treeNode2.add(treeNode3); treeNode3 = new javax.swing.tree.DefaultMutableTreeNode( new FlowDirectionPlugIn(context, initialDialog, layerablesList)); _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel