private void OnGravityCircle(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; GravityCircle gc = m_gm.Circle(lat, alt, GravityModel.Mask.GEOID_HEIGHT | GravityModel.Mask.GRAVITY); gc.Gravity(lon, out gx, out gy, out gz); m_accelXTextBox.Text = gx.ToString(); m_accelYTextBox.Text = gy.ToString(); m_accelZTextBox.Text = gz.ToString(); if (alt != 0.0) { MessageBox.Show("Geoid height cannot be calculated with GravityCircle if altitude is not 0", "", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { m_geoidTextBox.Text = gc.GeoidHeight(lon).ToString(); } Cursor = Cursors.Default; } catch (Exception xcpt) { Cursor = Cursors.Default; MessageBox.Show(xcpt.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
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)); } }
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 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); } }