static public double UTMCentralMeridian(int zone) { return DegToRad(-183.0 + (zone * 6.0)); }
static public double[] LatLonToUTMXY(double lat, double lon, int zone) { double[] xy = MapLatLonToXY(lat, lon, UTMCentralMeridian(zone)); /* Adjust easting and northing for UTM system. */ xy[0] = xy[0] * UTMScaleFactor + 500000.0; xy[1] = xy[1] * UTMScaleFactor; if (xy[1] < 0.0) xy[1] = xy[1] + 10000000.0; return xy; }
static public double[] UTMXYToLatLon(double x, double y, int zone, boolean southhemi) { x -= 500000.0; x /= UTMScaleFactor; /* If in southern hemisphere, adjust y accordingly. */ if (southhemi) y -= 10000000.0; y /= UTMScaleFactor; double cmeridian = UTMCentralMeridian(zone); return MapXYToLatLon(x, y, cmeridian); }
private String getVarname(IObservableSemantics observable) { GeoNS.synchronize(); IKnowledge type = observable.getType(); String ret = type.getLocalName() + "_" + type.getConceptSpace(); if (((ObservableSemantics) observable).getObservingSubjectId() != null) { ret = ((ObservableSemantics) observable).getObservingSubjectId() + "_" + ret; } ret = ret.replace('.', '_'); if (GeoNS.ELEVATION != null && type.equals(GeoNS.ELEVATION) && observable.getObserver() instanceof IMeasuringObserver && ((IMeasuringObserver) observable.getObserver()).getDiscretization() == null) { ret = "Altitude"; } /* * ensure we have no duplicates */ String rbase = ret; int n = 1; while (_varnames.contains(ret)) { ret = rbase + "_" + n; n++; } _varnames.add(ret); return ret; }
/** * Linear distance in KM between the centers of any two shapes. * * @param a * @param b * @return distance */ public static double getDistance(IGeometricShape a, IGeometricShape b) { return getDistance(a.getStandardizedGeometry().getCentroid().getCoordinate(), b.getStandardizedGeometry().getCentroid().getCoordinate()); }
double y = ArcLengthOfMeridian(phi) + (t / 2.0 * N * Math.pow(Math.cos(phi), 2.0) * Math.pow(l, 2.0)) + (t / 24.0 * N * Math.pow(Math.cos(phi), 4.0) * l4coef * Math.pow(l, 4.0)) + (t / 720.0 * N * Math.pow(Math.cos(phi), 6.0) * l6coef * Math.pow(l, 6.0))
PLAIN_REGION = checkClass(KLAB.MMANAGER.getExportedKnowledge(PLAIN_REGION_CONCEPT), IConcept.class); ELEVATION = checkClass(KLAB.MMANAGER.getExportedKnowledge(ELEVATION_CONCEPT), IConcept.class); PIT_FILLED_ELEVATION = checkClass(KLAB.MMANAGER.getExportedKnowledge(PIT_FILLED_ELEVATION_CONCEPT), IConcept.class); PRECIPITATION_VOLUME = checkClass(KLAB.MMANAGER.getExportedKnowledge(PRECIPITATION_VOLUME_CONCEPT), IConcept.class); SNOWFALL_VOLUME = checkClass(KLAB.MMANAGER.getExportedKnowledge(SNOWFALL_VOLUME_CONCEPT), IConcept.class); INFILTRATED_VOLUME = checkClass(KLAB.MMANAGER.getExportedKnowledge(INFILTRATED_VOLUME_CONCEPT), IConcept.class); EVAPORATED_VOLUME = checkClass(KLAB.MMANAGER.getExportedKnowledge(EVAPORATED_VOLUME_CONCEPT), IConcept.class); LOCALLY_EXCHANGED_VOLUME = checkClass( KLAB.MMANAGER.getExportedKnowledge(LOCALLY_EXCHANGED_VOLUME_CONCEPT), IConcept.class); RUNOFF_VOLUME = checkClass(KLAB.MMANAGER.getExportedKnowledge(RUNOFF_VOLUME_CONCEPT), IConcept.class); STREAM_OUTLET = checkClass(KLAB.MMANAGER.getExportedKnowledge(STREAM_OUTLET_CONCEPT), IConcept.class); WATERSHED = checkClass(KLAB.MMANAGER.getExportedKnowledge(WATERSHED_CONCEPT), IConcept.class); SLOPE = checkClass(KLAB.MMANAGER.getExportedKnowledge(SLOPE_CONCEPT), IConcept.class); ASPECT = checkClass(KLAB.MMANAGER.getExportedKnowledge(ASPECT_CONCEPT), IConcept.class); SLOPE_LENGTH = checkClass(KLAB.MMANAGER.getExportedKnowledge(SLOPE_LENGTH_CONCEPT), IConcept.class); FLOW_DIRECTION = checkClass(KLAB.MMANAGER.getExportedKnowledge(FLOW_DIRECTION_CONCEPT), IConcept.class); TOTAL_CONTRIBUTING_AREA = checkClass( KLAB.MMANAGER.getExportedKnowledge(TOTAL_CONTRIBUTING_AREA_CONCEPT), IConcept.class); HYDROLOGIC_SOIL_GROUP = checkClass(KLAB.MMANAGER.getExportedKnowledge(HYDROLOGIC_SOIL_GROUP_CONCEPT), IConcept.class); GLOBCOVER_CLASS = checkClass(KLAB.MMANAGER.getExportedKnowledge(GLOBCOVER_CLASS_CONCEPT), IConcept.class); STREAM = checkClass(KLAB.MMANAGER.getExportedKnowledge(STREAM_CONCEPT), IConcept.class); STREAM_PRESENCE = Observables.makePresence(
private double getDistance(double[] xy, ISpatialExtent extent) { if (extent == null) { return Double.NaN; } /* * we're on the feature, distance is 0. Intersector does check for actual point on * actual feature. */ if (!new FeatureIntersector(xy).find().isEmpty()) { return 0; } if (extent.getShape().getGeometryType() == Type.POINT) { Point point = (Point) ((IGeometricShape) extent.getShape()).getGeometry(); return GeoNS .getDistance(new Coordinate(xy[0], xy[1]), new Coordinate(point.getX(), point.getY())) * 1000.0; } /* * complicated intersection finding between extent and extent boundary. Let JTS help. */ Coordinate[] coords = DistanceOp.nearestPoints(ShapeValue .makePoint(xy[0], xy[1]), ((IGeometricShape) extent.getShape()).getGeometry()); if (coords == null || coords.length < 2) { return Double.NaN; } return GeoNS.getDistance(coords[0], coords[1]) * 1000.0; }
throws KlabException { GeoNS.synchronize();
static public double[] LatLonToUTMXY(double lat, double lon) { double[] xy = MapLatLonToXY(lat, lon, UTMCentralMeridian(0)); /* Adjust easting and northing for UTM system. */ xy[0] = xy[0] * UTMScaleFactor + 500000.0; xy[1] = xy[1] * UTMScaleFactor; if (xy[1] < 0.0) xy[1] = xy[1] + 10000000.0; return xy; }
&& Environment.get().getSpatialForcing().getMaxX() > Environment .get().getSpatialForcing().getMinX()) { GeoNS.synchronize(); actualContextType = GeoNS.PLAIN_REGION; Environment.get()
public static boolean synchronize() { if (!GeoNS.synchronize()) { return false;