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>
> 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
> > 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