/** * @return the easting (x) value of the origin. */ public double getOriginEasting() { return getOrigin()[eastingAxis]; }
double resx = cols * ref.getResolutionX() / ( cols - 2 ); double resy = rows * ref.getResolutionY() / ( rows - 2 ); ref = new RasterGeoReference( ref.getOriginLocation(), resx, resy, ref.getOrigin()[0], ref.getOrigin()[1] ); SimpleRaster hillShade = new SimpleRaster( shadeData, raster.getEnvelope(), ref, null );
/** * @return the world coordinate of the origin of the geo referenced raster. */ public double[] getOrigin() { return getOrigin( location ); }
/** * @return the northing (y) value of the origin. */ public double getOriginNorthing() { return getOrigin()[1 - eastingAxis]; }
@Override public String toString() { StringBuffer sb = new StringBuffer( 200 ); double[] orig = getOrigin(); sb.append( "{location=" ).append( location ).append( "," ); sb.append( "orig_0=" ).append( orig[0] ).append( "," ); sb.append( "orig_1=" ).append( orig[1] ).append( "," ); sb.append( "xRes=" ).append( getResolutionX() ).append( "," ); sb.append( "yRes=" ).append( getResolutionY() ).append( "," ); sb.append( "xRpt=" ).append( getRotationX() ).append( "," ); sb.append( "yRot=" ).append( getRotationY() ).append( "}" ); return sb.toString(); }
@Override public int compare( AbstractRaster o1, AbstractRaster o2 ) { if ( o1 == null ) { return o2 == null ? 0 : 1; } if ( o2 == null ) { return -1; } double[] orig1 = o1.getRasterReference().getOrigin(); double[] orig2 = o2.getRasterReference().getOrigin(); int result = 0; if ( row ) { result = Double.compare( orig1[1], orig2[1] ); if ( result == 0 ) { result = Double.compare( orig1[0], orig2[0] ); } } else { result = Double.compare( orig1[0], orig2[0] ); if ( result == 0 ) { // Invert for negative resolution. result = -1 * Double.compare( orig1[1], orig2[1] ); } } return result; } }
private void writeMetaInfoFile( File file, RasterGeoReference env, int columns, int rows ) throws IOException { System.out.print( "\n Writing meta info file (raster envelope, etc)..." ); PrintWriter writer = new PrintWriter( new FileWriter( file ) ); // begins with standard world file entries writer.println( env.getResolutionX() ); writer.println( env.getRotationY() ); writer.println( env.getRotationX() ); writer.println( env.getResolutionY() ); double[] origin = env.getOrigin(); writer.println( origin[0] ); writer.println( origin[1] ); // now infos on grid writer.println( rows ); writer.println( columns ); writer.println( tileWidth ); writer.println( tileHeight ); writer.close(); LOG.info( "done." ); }
/** * writes a RasterReference into a world file. * * @param renv * the envelope * @param writer * to write the worldfile to. * @throws IOException */ public static void writeWorldFile( RasterGeoReference renv, PrintWriter writer ) throws IOException { writer.println( renv.getResolutionX() ); writer.println( renv.getRotationY() ); writer.println( renv.getRotationX() ); writer.println( renv.getResolutionY() ); // worldfiles are centered. double[] orig = renv.getOrigin( OriginLocation.CENTER ); writer.println( orig[0] ); writer.println( orig[1] ); } }
@Override public void setSubRaster( Envelope env, int dstBand, AbstractRaster source ) { AbstractRaster subset = source.getSubRaster( env ); double[] pos = subset.getRasterReference().getOrigin(); setSubRaster( pos[0], pos[1], dstBand, source ); }
@Override public void setSubRaster( Envelope env, AbstractRaster source ) { AbstractRaster subset = source.getSubRaster( env ); double[] pos = subset.getRasterReference().getOrigin(); setSubRaster( pos[0], pos[1], source ); }
double[] orig = geoRef2.getOrigin( geoRef1.location ); geoRef2Copy = new RasterGeoReference( geoRef1.location, geoRef2.getResolutionX(), geoRef2.getResolutionY(), geoRef2.getRotationX(), geoRef2.getRotationY(), orig[0], orig[1], geoRef2.crs ); double[] origin1 = geoRef1.getOrigin(); double[] origin2 = geoRef2Copy.getOrigin();
/** * Returns new RasterGeoReference with the origin set to the given target location. Other values are taken from this * instance. * * @param targetLocation * of the new reference * @return new RasterGeoReference or this if the target location is <code>null</code> or equals this one. */ public RasterGeoReference createRelocatedReference( OriginLocation targetLocation ) { if ( targetLocation == null || location == targetLocation ) { return this; } double[] newOrigin = getOrigin( targetLocation ); return new RasterGeoReference( targetLocation, this.getResolutionX(), this.getResolutionY(), this.getRotationX(), this.getRotationY(), newOrigin[0], newOrigin[1], this.crs ); }