in streampipes-extensions/streampipes-processors-geo-jvm/src/main/java/org/apache/streampipes/processors/geo/jvm/jts/helper/SpReprojectionBuilder.java [203:239]
public static int findWgsUtm_EPSG(Point point) {
double lon = point.getX();
double lat = point.getY();
Integer zone;
Integer epsg;
Integer hemisphere;
zone = (int) Math.floor(lon / 6 + 31);
if ((lat > 55) && (zone == 31) && (lat < 64) && (lon > 2)) {
zone = 32;
} else if ((lat > 71) && (zone == 32) && (lon < 9)) {
zone = 31;
} else if ((lat > 71) && (zone == 32) && (lon > 8)) {
zone = 33;
} else if ((lat > 71) && (zone == 34) && (lon < 21)) {
zone = 33;
} else if ((lat > 71) && (zone == 34) && (lon > 20)) {
zone = 35;
} else if ((lat > 71) && (zone == 36) && (lon < 33)) {
zone = 35;
} else if ((lat > 71) && (zone == 36) && (lon > 32)) {
zone = 37;
}
// Set northern or southern hemisphere
if (lat < 0) {
hemisphere = 7;
} else {
hemisphere = 6;
}
//concatenate integer values
epsg = Integer.valueOf(String.valueOf(32) + hemisphere + zone);
return epsg;
}