Hi Peppe, thanks for the update!
and have a good time in Switzerland. Its probably expensive there - but if you are a tour guide its less a problem of yours ;) stefan Am 26.06.13 12:56, schrieb Giuseppe Aruta: > Really I don't understand loops in Java > ;-) > > > 2013/6/26 Giuseppe Aruta <giuseppe_ar...@yahoo.it > <mailto:giuseppe_ar...@yahoo.it>> > > Hi Stefan, > I made some progress, now I am able to save to asc, unfortunately > each value of the pixel of the ascii is saved an incredible number > equal to rowXcolumn of the original. So my test file of 101 byte > becomes a huge file of 2 Gb :-( Surelly I made a misake. > Then I moved to Switzerland for job, where actully I am. And didn't > carry with me Eclipse, codes, OpenJMP, etc. I will be back home > after 5th of July and give a better look (and send the code) > regards > > Peppe > > > 2013/6/26 Stefan Steiniger <sst...@geo.uzh.ch > <mailto:sst...@geo.uzh.ch>> > > Hi Peppe, > > did you made any progress on that? > Or is the code the last version you have? > > slds, > stefan > > Am 21.06.13 06:05, schrieb Giuseppe Aruta: > > > > Hi all, > > Recently I worked a bit with Sextante/grids and did some > specialized > > short courses. A student of mine used OpenJUMP/Sextante to do > some > > analysis. Than he had to convert all the rasters (TIFF > format) into ESRI > > Ascii grid files (.asc) as he had to use a more specialized > software > > that was accepting only asc. and surfer raster format. > > Of coarse we used gdal for raster transformation. > > Well, since Esri ascii file is a very simple text file > > (http://en.wikipedia.org/wiki/Esri_grid), in these days ( > that I have > > spare time) I tried to make a plugin "Export raster to Esri > Ascii grid > > file" for OpenJUMP (that in turn I would like to add to OJ > NB). All > > raster parameters are easy implemented by RasterImageLayer and > > OpenJUMPSextanteRasterLayer. > > I had some success and some failures. > > I ask your help, as developers. > > I added to this mail the code I wrote (coping partially OJ raster > > classes and from other software like ImageJ) - The foillowing > code just > > shows the transformation, excluding initialize(), icon(), > name(), etc. > > This code partially works: the file is saved together with > the header of > > the raster (see the *black* part of the code, number of > colums, rows, > > x-ycoordinates of upper left corner, cell size and NODATA), > > The red part of code is not working. This part should lists > the raster > > values for each cell, starting at the upper-left corner, > possibly with > > decimal values, delimited by space character. I ask you if > can give me a > > suggestion for this part. > > Another part that I would like to implement is the > MultienableCheck > > (dark *violet *part of the code). This plugin should be > activated only > > if the raster has only one band (I think this is numbered "0" by > > OpenJUMPSextanteRasterLayer class). Any suggestion is > accepted: a way to > > distinguish (within Pirol raster plugin) between grid mono > band file and > > others would be quite usefull for future plugins > > If this plugin is finished I think I will add to OJ NB under > > Raster>Tools menu. > > regards and thanks > > > > Peppe > > > > public class SaveToASCPlugIn extends AbstractPlugIn > > { > > > > protected double[][] data; > > private Properties properties = null; > > private static String propertiesFile = > > LoadSextanteRasterImagePlugIn.getPropertiesFile(); > > private String lastPath; > > NumberFormat cellFormat = null; > > public static final String DEFAULT_NODATA = "-9999"; > > > > public boolean execute(PlugInContext context) > > throws Exception > > { > > JFileChooser fc = new JFCWithEnterAction(); > > > > fc.setFileFilter(new FileFilter() { > > public boolean accept(File f) { > > return (f.isDirectory()) || > > (f.getName().toLowerCase().endsWith(".asc")); > > } > > > > public String getDescription() { > > return "Arc/Info ASCII Grid (.asc)"; > > } > > }); > > this.properties = new Properties(); > > try { > > FileInputStream fis = new FileInputStream(propertiesFile); > > this.properties.load(fis); > > this.lastPath = > > > this.properties.getProperty(LoadSextanteRasterImagePlugIn.KEY_PATH); > > fis.close(); > > } > > catch (FileNotFoundException e) { > > > > > > context.getWorkbenchFrame().warnUser(I18N.get("org.openjump.core.ui.plugin.layer.pirolraster.SaveRasterImageAsImagePlugIn.File-not-found")); > > } > > catch (IOException e) { > > context.getWorkbenchFrame().warnUser(GenericNames.ERROR); > > } > > > > if (this.lastPath != null) { > > fc.setCurrentDirectory(new File(this.lastPath)); > > } > > fc.setMultiSelectionEnabled(false); > > > > fc.setDialogTitle(getName()); > > int returnVal = fc.showSaveDialog(fc); > > if (returnVal == 0) { > > String ascFileName = > fc.getSelectedFile().getAbsolutePath(); > > > > if > (!ascFileName.toLowerCase().endsWith(".asc".toLowerCase())) { > > ascFileName = ascFileName + ".asc"; > > } > > > > File ascFile = new File(ascFileName); > > > > FileOutputStream ascOut = new FileOutputStream(ascFile); > > > > RasterImageLayer rLayer = > > (RasterImageLayer)LayerTools.getSelectedLayerable(context, > > RasterImageLayer.class); > > OpenJUMPSextanteRasterLayer rstLayer = new > > OpenJUMPSextanteRasterLayer(); > > rstLayer.create(rLayer); > > > > *PrintStream o = new PrintStream(ascOut);* > > *o.println( "ncols " + rLayer.getOrigImageWidth() ); > > //rstLayer.getNX() ); > > o.println( "nrows " + rLayer.getOrigImageHeight() ); > > //rstLayer.getNY() ); > > o.println( "xllcorner " + > rLayer.getEnvelope().getMinX() ); > > o.println( "yllcorner " + > rLayer.getEnvelope().getMinY()); > > o.println( "cellsize " + rstLayer.getLayerCellSize() ); > > o.println( "NODATA_value " + DEFAULT_NODATA );* > > > > > > GridWrapperNotInterpolated gwrapper = new > > GridWrapperNotInterpolated(rstLayer, > rstLayer.getLayerGridExtent()); > > > > > > int nx = rstLayer.getLayerGridExtent().getNX(); > > int ny = rstLayer.getLayerGridExtent().getNY(); > > for (int x = 0; x < nx; x++) {//cols > > for (int y = 0; y < ny; y++) {//rows > > double value = > gwrapper.getCellValueAsFloat(x, y, 0); > > StringBuffer b = new StringBuffer(); > > for( int i = 0; i < > rLayer.getOrigImageWidth(); i++ ) > > { > > if( > Double.isNaN(rstLayer.getNoDataValue() ) > > ) b.append( rstLayer.getNoDataValue() ); > > else if( cellFormat != null ) b.append( > > cellFormat.format( value )); > > else b.append( cellFormat.format( > value ) ); > > if( i < rLayer.getOrigImageWidth() -1 ) > > b.append( " " ); > > } > > o.println( b ); > > } > > } > > o.close(); > > > > rLayer.setImageFileName(ascFileName); > > rLayer.setNeedToKeepImage(false); > > } > > > > return true; > > } > > > > > > public void setCellFormat( NumberFormat format ) > > { > > cellFormat = format; > > } > > > > > > *public static MultiEnableCheck > createEnableCheck(WorkbenchContext > > workbenchContext) > > { > > EnableCheckFactory checkFactory = new EnableCheckFactory( > > workbenchContext); > > MultiEnableCheck multiEnableCheck = new MultiEnableCheck(); > > > > > > > > multiEnableCheck.add(checkFactory.createExactlyNLayerablesMustBeSelectedCheck(1, > > RasterImageLayer.class)); > > > > return multiEnableCheck;* > > } > > > > } > > > > > > > > ------------------------------------------------------------------------------ > > This SF.net email is sponsored by Windows: > > > > Build for Windows Store. > > > > http://p.sf.net/sfu/windows-dev2dev > > > > > > > > _______________________________________________ > > Jump-pilot-devel mailing list > > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > <mailto:Jump-pilot-devel@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > > > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > > > > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel