docs: @SuppressWarnings({"checkstyle:magicnumber", "checkstyle:localfinalvariablename", "checkstyle:localvariablename"})
  	private static GeodesicPosition NTFLambdaPhi_WSG84(double lambda_ntf, double phi_ntf) {
  		// Geographical coordinate NTF (lamda_ntf,phi_ntf)
  		// -> Cartesian coordinate NTF (x_ntf,y_ntf,z_ntf)
  		// ALG0009
  		double a = 6378249.2;
  		// 100 meters
  		final double h = 100;
  		final double N = a / Math.pow(1. - (NTF_E * NTF_E) * (Math.sin(phi_ntf) * Math.sin(phi_ntf)), .5);
  		final double x_ntf = (N + h) * Math.cos(phi_ntf) * Math.cos(lambda_ntf);
  		final double y_ntf = (N + h) * Math.cos(phi_ntf) * Math.sin(lambda_ntf);
  		final double z_ntf = ((N * (1. - (NTF_E * NTF_E))) + h) * Math.sin(phi_ntf);
  
  		// Cartesian coordinate NTF (x_ntf,y_ntf,z_ntf)
  		// -> Cartesian coordinate WGS84 (x_w,y_w,z_w)
  		// ALG0013
  
  		// This is a simple translation.
  		final double x_w = x_ntf - 168.;
  		final double y_w = y_ntf - 60.;
  		final double z_w = z_ntf + 320;
  
  		// Cartesian coordinate WGS84 (x_w,y_w,z_w)
  		// -> Geographic coordinate WGS84 (lamda_w,phi_w)
  		// ALG0012
  
  		// 0.04079234433 to use the Greenwich meridian, 0 else
  		final double l840 = 0.04079234433;
  		a = 6378137.0;
  
  		final double P = Math.hypot(x_w, y_w);
  
  		double lambda_w = l840 + Math.atan(y_w / x_w);
  
  		double phi0_w = Math.atan(z_w / (P * (1 - ((a * WSG84_E * WSG84_E))
  				/ Math.sqrt((x_w * x_w) + (y_w * y_w) + (z_w * z_w)))));
  
  		double phi_w = Math.atan((z_w / P) / (1 - ((a * WSG84_E * WSG84_E * Math.cos(phi0_w))
  				/ (P * Math.sqrt(1 - NTF_E * NTF_E * (Math.sin(phi0_w) * Math.sin(phi0_w)))))));
  
  		while (Math.abs(phi_w - phi0_w) >= EPSILON) {
  			phi0_w = phi_w;
  			phi_w = Math.atan((z_w / P) / (1 - ((a * WSG84_E * WSG84_E * Math.cos(phi0_w))
  					/ (P * Math.sqrt(1 - ((WSG84_E * WSG84_E) * (Math.sin(phi0_w) * Math.sin(phi0_w))))))));
  
  		}
  
  		// Convert radians to degrees.
  		lambda_w = Math.toDegrees(lambda_w);
  		phi_w = Math.toDegrees(phi_w);
  
  		return new GeodesicPosition(lambda_w, phi_w);
  	}