static void Main(string[] args) { try { GravityModel grav = new GravityModel("egm96", ""); double lat = 27.99, lon0 = 86.93, h = 8820; // Mt Everest { // Slow method of evaluating the values at several points on a circle of // latitude. for (int i = -5; i <= 5; ++i) { double lon = lon0 + i * 0.2; double gx, gy, gz; grav.Gravity(lat, lon, h, out gx, out gy, out gz); Console.WriteLine(String.Format("{0} {1} {2} {3}", lon, gx, gy, gz)); } } { // Fast method of evaluating the values at several points on a circle of // latitude using GravityCircle. GravityCircle circ = grav.Circle(lat, h, GravityModel.Mask.ALL); for (int i = -5; i <= 5; ++i) { double lon = lon0 + i * 0.2; double gx, gy, gz; circ.Gravity(lon, out gx, out gy, out gz); Console.WriteLine(String.Format("{0} {1} {2} {3}", lon, gx, gy, gz)); } } } catch (GeographicErr e) { Console.WriteLine(String.Format("Caught exception: {0}", e.Message)); } }
public void Test_Evaluate(string coord, double height, double GX, double GY, double GZ) { var c = new GeoCoords(coord); var model = new GravityModel("egm96", Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "gravity")); { var(_, gx, gy, gz) = model.Gravity(c.Latitude, c.Longitude, height); Assert.AreEqual(GX, gx, 1e-5); Assert.AreEqual(GY, gy, 1e-5); Assert.AreEqual(GZ, gz, 1e-5); } }
static void Main(string[] args) { try { GravityModel grav = new GravityModel("egm96", ""); double lat = 27.99, lon = 86.93, h = 8820; // Mt Everest double gx, gy, gz; grav.Gravity(lat, lon, h, out gx, out gy, out gz); Console.WriteLine(String.Format("{0} {1} {2}", gx, gy, gz)); } catch (GeographicErr e) { Console.WriteLine(String.Format("Caught exception: {0}", e.Message)); } }
static void Main(string[] args) { try { GravityModel grav = new GravityModel("egm96",""); double lat = 27.99, lon = 86.93, h = 8820; // Mt Everest double gx, gy, gz; grav.Gravity(lat, lon, h, out gx, out gy, out gz); Console.WriteLine(String.Format("{0} {1} {2}", gx, gy, gz)); } catch (GeographicErr e) { Console.WriteLine(String.Format("Caught exception: {0}", e.Message)); } }
private void OnValidate(object sender, EventArgs e) { try { double lon = -86.0; double lat = 32.0; double alt = 0.0; double x, y, z; GravityModel gm = new GravityModel(m_name, m_path); gm.Disturbance(lat, lon, alt, out x, out y, out z); gm.GeoidHeight(lat, lon); gm.Gravity(lat, lon, alt, out x, out y, out z); gm.Phi(5000000.0, 5000000.0, out x, out y); gm.SphericalAnomaly(lat, lon, alt, out x, out y, out z); gm.T(5000000.0, 5000000.0, 5000000.0); gm.U(5000000.0, 5000000.0, 5000000.0, out x, out y, out z); gm.V(5000000.0, 5000000.0, 5000000.0, out x, out y, out z); gm.W(5000000.0, 5000000.0, 5000000.0, out x, out y, out z); NormalGravity ng = new NormalGravity(NormalGravity.StandardModels.GRS80); ng = new NormalGravity(NormalGravity.StandardModels.WGS84); ng = new NormalGravity(6378137.0, 3.986005e+14, 7.292115147e-5, 1.08263e-3, false); ng = gm.ReferenceEllipsoid(); ng.DynamicalFormFactor(1); Geocentric geo = ng.Earth(); ng.Gravity(lat, alt, out x, out z); ng.Phi(5000000.0, 5000000.0, out x, out y); ng.SurfaceGravity(lat); ng.U(5000000.0, 5000000.0, 5000000.0, out x, out y, out z); ng.V0(5000000.0, 5000000.0, 5000000.0, out x, out y, out z); GravityCircle gc = gm.Circle(lat, 0.0, GravityModel.Mask.ALL); gc.Capabilities(); gc.Capabilities(GravityModel.Mask.GRAVITY); gc.Disturbance(lon, out x, out y, out z); gc.GeoidHeight(lon); gc.Gravity(lon, out x, out y, out z); gc.SphericalAnomaly(lon, out x, out y, out z); gc.T(lon); gc.V(lon, out x, out y, out z); gc.W(lon, out x, out y, out z); MessageBox.Show("No errors detected", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception xcpt) { MessageBox.Show(xcpt.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void OnUpdate(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; try { double lon = Double.Parse(m_longitudetextBoxT.Text); double lat = Double.Parse(m_latitudeTextBox.Text); double alt = Double.Parse(m_altitudeTextBox.Text); double gx, gy, gz; m_gm.Gravity(lat, lon, alt, out gx, out gy, out gz); m_accelXTextBox.Text = gx.ToString(); m_accelYTextBox.Text = gy.ToString(); m_accelZTextBox.Text = gz.ToString(); m_geoidTextBox.Text = m_gm.GeoidHeight(lat, lon).ToString(); Cursor = Cursors.Default; } catch (Exception xcpt) { Cursor = Cursors.Default; MessageBox.Show(xcpt.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void OnValidate(object sender, EventArgs e) { try { double lon = -86.0; double lat = 32.0; double alt = 0.0; double x, y, z; GravityModel gm = new GravityModel(m_name,m_path); gm.Disturbance( lat, lon, alt, out x, out y, out z); gm.GeoidHeight(lat,lon); gm.Gravity(lat,lon,alt,out x,out y, out z); gm.Phi(5000000.0,5000000.0,out x,out y); gm.SphericalAnomaly(lat,lon,alt,out x, out y, out z); gm.T(5000000.0,5000000.0,5000000.0); gm.U(5000000.0,5000000.0,5000000.0,out x,out y,out z); gm.V(5000000.0,5000000.0,5000000.0,out x,out y,out z); gm.W(5000000.0,5000000.0,5000000.0,out x,out y,out z); NormalGravity ng = new NormalGravity(NormalGravity.StandardModels.GRS80); ng = new NormalGravity( NormalGravity.StandardModels.WGS84); ng = new NormalGravity(6378137.0,3.986005e+14,7.292115147e-5,-1.0,1.08263e-3); ng = gm.ReferenceEllipsoid(); ng.DynamicalFormFactor(1); Geocentric geo = ng.Earth(); ng.Gravity(lat,alt,out x, out z); ng.Phi(5000000.0,5000000.0,out x,out y); ng.SurfaceGravity(lat); ng.U(5000000.0,5000000.0,5000000.0,out x, out y, out z); ng.V0(5000000.0,5000000.0,5000000.0,out x, out y, out z); GravityCircle gc = gm.Circle(lat,0.0,GravityModel.Mask.ALL); gc.Capabilities(); gc.Capabilities(GravityModel.Mask.GRAVITY); gc.Disturbance(lon, out x, out y, out z); gc.GeoidHeight(lon); gc.Gravity(lon, out x, out y, out z); gc.SphericalAnomaly(lon, out x, out y, out z); gc.T(lon); gc.V(lon, out x, out y, out z); gc.W(lon, out x, out y, out z); MessageBox.Show("No errors detected", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception xcpt) { MessageBox.Show(xcpt.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }