package other;

import org.apache.sis.io.wkt.WKTFormat;
import org.opengis.referencing.operation.CoordinateOperation;

public class WktToTransform {

    public CoordinateOperation createRfkTransformation() throws Exception {
        String rfkWkt = "COORDINATEOPERATION[\"Nord Sahara 1959 to WGS 84 (RKF)\","
                + "SOURCECRS[GEODCRS[\"Nord Sahara 1959\","
                + "DATUM[\"Nord Sahara 1959\","
                + "ELLIPSOID[\"Clarke 1880 (RGS)\",6378249.145,293.465,ID[\"EPSG\",7012]],"
                + "ID[\"EPSG\",6307]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]],"
                + "AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4307]]],TARGETCRS[GEODCRS[\"WGS 84\","
                + "DATUM[\"World Geodetic System 1984 ensemble\", "
                + "MEMBER[\"World Geodetic System 1984 (Transit)\", "
                + "ID[\"EPSG\",1166]], "
                + "MEMBER[\"World Geodetic System 1984 (G730)\", ID[\"EPSG\",1152]],"
                + "MEMBER[\"World Geodetic System 1984 (G873)\", ID[\"EPSG\",1153]],"
                + "MEMBER[\"World Geodetic System 1984 (G1150)\", ID[\"EPSG\",1154]],"
                + "MEMBER[\"World Geodetic System 1984 (G1674)\", ID[\"EPSG\",1155]],"
                + "MEMBER[\"World Geodetic System 1984 (G1762)\", ID[\"EPSG\",1156]],"
                + "ELLIPSOID[\"WGS 84\",6378137,298.257223563,ID[\"EPSG\",7030]],"
                + "ENSEMBLEACCURACY[2],ID[\"EPSG\",6326]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]],"
                + "AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4326]]],METHOD[\"Geocentric translations (geog2D domain)\","
                + "ID[\"EPSG\",9603]],PARAMETER[\"X-axis translation\",-167.757,"
                + "LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Y-axis translation\",-63.133,LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Z-axis translation\",300.982,LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"tgt_semi_major\",6378137.0],"
                + "PARAMETER[\"tgt_semi_minor\",298.257223563],"
                + "USAGE[SCOPE[\"Oil and gas exploration and production.\"],AREA[\"Algeria - Rhourde_El_Khrouf_RKF_406A licence area\"],"
                + "BBOX[30.50061,8.165869,30.66727,8.382544]],ID[\"CEPSA\",650009],"
                + "REMARK[\"Datum shift observed in Algeria by CEPSA-ENAGEO in Rhourde_El_Khrouf_RKF_406A licence during 2005, origin RY27\"]]";
        WKTFormat wf = new WKTFormat(null, null);
        return (CoordinateOperation) wf.parseObject(rfkWkt);
    }
    
    public CoordinateOperation createPer2Transformation() throws Exception {
        String per2Wkt = "COORDINATEOPERATION[\"Nord Sahara 1959 to WGS 84 (RER-II)\","
                + "SOURCECRS[GEODCRS[\"Nord Sahara 1959\",DATUM[\"Nord Sahara 1959\","
                + "ELLIPSOID[\"Clarke 1880 (RGS)\",6378249.145,293.465,ID[\"EPSG\",7012]]"
                + ",ID[\"EPSG\",6307]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]]"
                + ",AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4307]]],TARGETCRS[GEODCRS[\"WGS 84\","
                + "DATUM[\"World Geodetic System 1984 ensemble\", "
                + "MEMBER[\"World Geodetic System 1984 (Transit)\", ID[\"EPSG\",1166]], "
                + "MEMBER[\"World Geodetic System 1984 (G730)\", ID[\"EPSG\",1152]],"
                + "MEMBER[\"World Geodetic System 1984 (G873)\", ID[\"EPSG\",1153]],"
                + "MEMBER[\"World Geodetic System 1984 (G1150)\", ID[\"EPSG\",1154]],"
                + "MEMBER[\"World Geodetic System 1984 (G1674)\", ID[\"EPSG\",1155]],"
                + "MEMBER[\"World Geodetic System 1984 (G1762)\", ID[\"EPSG\",1156]],"
                + "ELLIPSOID[\"WGS 84\",6378137,298.257223563,ID[\"EPSG\",7030]],"
                + "ENSEMBLEACCURACY[2],ID[\"EPSG\",6326]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]],"
                + "AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4326]]],"
                + "METHOD[\"Geocentric translations (geog2D domain)\",ID[\"EPSG\",9603]],"
                + "PARAMETER[\"X-axis translation\",-164.05,"
                + "LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Y-axis translation\",8.09,"
                + "LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Z-axis translation\",365.63,"
                + "LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"tgt_semi_major\",6378137.0],"
                + "PARAMETER[\"tgt_semi_minor\",298.257223563],"
                + "USAGE[SCOPE[\"Oil and gas exploration and production.\"],"
                + "AREA[\"Algeria - Rhourde_Er_Rouni_II_401A_403F licence area\"],"
                + "BBOX[31.25078,8.417003,31.83408,9.000355]],ID[\"CEPSA\",650008],"
                + "REMARK[\"Datum shift observed in Algeria by Amerada Hess-WesternGeco in BMS-401C licence during 2001 and adopted by CEPSA-ENAGEO in RER-II-401A-403F licence during 2012, origin LG-02\"]]";
        WKTFormat wf = new WKTFormat(null, null);
        return (CoordinateOperation) wf.parseObject(per2Wkt);
    }
    
    public CoordinateOperation createTiminounTransformation() throws Exception {
        String timimounWkt = "COORDINATEOPERATION[\"Nord Sahara 1959 to WGS 84 (Timimoun)\","
                + "SOURCECRS[GEODCRS[\"Nord Sahara 1959\","
                + "DATUM[\"Nord Sahara 1959\","
                + "ELLIPSOID[\"Clarke 1880 (RGS)\",6378249.145,293.465,ID[\"EPSG\",7012]],"
                + "ID[\"EPSG\",6307]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]],"
                + "AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4307]]],"
                + "TARGETCRS[GEODCRS[\"WGS 84\","
                + "DATUM[\"World Geodetic System 1984 ensemble\", "
                + "MEMBER[\"World Geodetic System 1984 (Transit)\", ID[\"EPSG\",1166]], "
                + "MEMBER[\"World Geodetic System 1984 (G730)\", ID[\"EPSG\",1152]],"
                + "MEMBER[\"World Geodetic System 1984 (G873)\", ID[\"EPSG\",1153]],"
                + "MEMBER[\"World Geodetic System 1984 (G1150)\", ID[\"EPSG\",1154]],"
                + "MEMBER[\"World Geodetic System 1984 (G1674)\", ID[\"EPSG\",1155]],"
                + "MEMBER[\"World Geodetic System 1984 (G1762)\", ID[\"EPSG\",1156]],"
                + "ELLIPSOID[\"WGS 84\",6378137,298.257223563,ID[\"EPSG\",7030]],"
                + "ENSEMBLEACCURACY[2],ID[\"EPSG\",6326]],"
                + "CS[ellipsoidal,2,ID[\"EPSG\",6422]],"
                + "AXIS[\"Geodetic latitude (Lat)\",north],"
                + "AXIS[\"Geodetic longitude (Lon)\",east],"
                + "ANGLEUNIT[\"degree\",0.0174532925199433,ID[\"EPSG\",9102]],"
                + "ID[\"EPSG\",4326]]],"
                + "METHOD[\"Geocentric translations (geog2D domain)\",ID[\"EPSG\",9603]],"
                + "PARAMETER[\"X-axis translation\",-167.0,"
                + "LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Y-axis translation\",-73.0,LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"Z-axis translation\",303.7,LENGTHUNIT[\"metre\",1,ID[\"EPSG\",9001]]],"
                + "PARAMETER[\"tgt_semi_major\",6378137.0],"
                + "PARAMETER[\"tgt_semi_minor\",298.257223563],"
                + "USAGE[SCOPE[\"Oil and gas exploration and production.\"],AREA[\"Algeria - Timimoun_325A_329 licence area\"],"
                + "BBOX[27.91718,-0.250751,29.33378,1.665982]],ID[\"CEPSA\",650010],"
                + "REMARK[\"Datum shift observed in Algeria by BP for IN SALAH GAS in the District 3, Timimoun_325A_329 licence area during 1996\"]]";
        WKTFormat wf = new WKTFormat(null, null);
        return (CoordinateOperation) wf.parseObject(timimounWkt);
    }
    
    
}
