Projected Separation and 3D Distance Problem (Code Included)

In summary, the code I've written calculates the projected separation between two galaxies, but it's not always less than the Euclidian distance.
  • #1
FiberOptix
12
0
Hi all, I've written code that takes J2000 equatorial coordinates for 2 objects and calculates (1) the projected separation of between object 1 and object 2 at the distance of object 1, and the Euclidean (3D) distance between objects 1 and 2. The projected separations should be <= the Euclidean distance, but most of the time they aren't. I've checked both formulae several times and am left scratching my head. As a last ditch effort, perhaps someone here can spot the error. Projected separations are calculated via the Haversine formula. See the C/C++ functions below, where I've included the struct:

Code:
typedef struct _galaxy{
	char Name[12];
	double RA, DE;
	double D;
} galaxy;

double separation (galaxy gal1, galaxy gal2)
{
  // convert from eq coords to Cartesian
  double x1 = gal1.D * cos(gal1.DE * DEG_TO_RAD) * cos(gal1.RA * DEG_TO_RAD);
  double x2 = gal2.D * cos(gal2.DE * DEG_TO_RAD) * cos(gal2.RA * DEG_TO_RAD);
  double y1 = gal1.D * cos(gal1.DE * DEG_TO_RAD) * sin(gal1.RA * DEG_TO_RAD);
  double y2 = gal2.D * cos(gal2.DE * DEG_TO_RAD) * sin(gal2.RA * DEG_TO_RAD);
  double z1 = gal1.D * sin(gal1.DE * DEG_TO_RAD);
  double z2 = gal2.D * sin(gal2.DE * DEG_TO_RAD);
  // compute 3d separation
  double out = sqrt( (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1) );
  return out;
}

double proj_separation(galaxy gal1, galaxy gal2)
{
  double dDE = ( gal1.DE - gal2.DE ) * DEG_TO_RAD;
  double dRA = ( gal1.RA - gal2.RA ) * DEG_TO_RAD;
  // calculate projected separation of galaxy 2 at the distance of galaxy 1 (Haversine)
  double out = gal1.D * ( 2.0 * asin( 
                                sqrt( ( sin( dDE/2.0 ) * sin( dDE/2.0 ) ) 
                                    + ( cos( gal1.DE * DEG_TO_RAD ) 
                                       * cos( gal2.DE * DEG_TO_RAD )
                                       * sin( dRA / 2.0 )
                                       * sin( dRA / 2.0 )
			 	        ) ) ) ) ;
  return out;
}
 
Astronomy news on Phys.org
  • #2
FiberOptix said:
The projected separations should be <= the Euclidean distance
Why?
Consider two galaxies at the same distance D to us, but separated by 90° (as seen by us).
Their Euclidian distance is ##D\sqrt{2}##, but if you project this distance on a great circle, you get ##D\frac{\pi}{2} > D\sqrt{2}##.
The 90° are arbitrary, the inequality holds for any angle.
 
  • #3
mfb said:
Why?

Because a projected separation is calculated assuming the distances to each are the same. Any difference between the distances two is going to give a true separation that is greater than the projected one.

Consider two galaxies at the same distance D to us, but separated by 90° (as seen by us).
Their Euclidian distance is ##D\sqrt{2}##, but if you project this distance on a great circle, you get ##D\frac{\pi}{2} > D\sqrt{2}##.
The 90° are arbitrary, the inequality holds for any angle.

Yes, I think the difference here is that, by projected separation, I intend to mean projected distance between the two. I'm not sure that projecting on to a great circle is a valid thing to do. So, maybe I shouldn't be using the Haversine function...
 
  • #4
Because a projected separation is calculated assuming the distances to each are the same.
As shown, you compare two different distance measurements, even if the distances to us are the same.

I'm not sure that projecting on to a great circle is a valid thing to do.
At least not if you want to compare it to the Euclidian distance.

You can calculate the Euclidian distance if you project the galaxy further away to the distance of the other galaxy. In that case, you should get a value which does not exceed the true separation.
 
  • #5
mfb said:
As shown, you compare two different distance measurements

Right, this discussion has been helpful. I guess my initial assertion was incorrect and I can continue on but I'm still feeling a bit uneasy about it.
 

Related to Projected Separation and 3D Distance Problem (Code Included)

1. What is the Projected Separation and 3D Distance Problem?

The Projected Separation and 3D Distance Problem is a common problem in scientific research that involves calculating the distance between two objects in a three-dimensional space. This problem is often encountered in fields such as astrophysics, chemistry, and biology.

2. What is the purpose of solving this problem?

The purpose of solving the Projected Separation and 3D Distance Problem is to accurately measure the distance between two objects in a three-dimensional space. This can provide important information about the relationship between the objects and aid in understanding their properties and behavior.

3. How is this problem solved?

This problem is typically solved using mathematical equations and algorithms that take into account the coordinates and orientations of the two objects in three-dimensional space. These equations may vary depending on the specific context and application of the problem.

4. What are some challenges associated with solving this problem?

One of the main challenges of solving the Projected Separation and 3D Distance Problem is accurately measuring the coordinates and orientations of the objects in three-dimensional space. This requires precise instrumentation and careful data collection. Additionally, the complexity of the equations and algorithms used to solve this problem can also pose a challenge.

5. How is the solution to this problem useful in scientific research?

The solution to the Projected Separation and 3D Distance Problem can provide valuable information for scientific research. It can help scientists understand the spatial relationships between objects, which can in turn inform theories and models. This problem is also commonly used in data analysis and can aid in making predictions and drawing conclusions from research findings.

Similar threads

  • Engineering and Comp Sci Homework Help
Replies
1
Views
1K
  • General Math
Replies
3
Views
898
  • Programming and Computer Science
Replies
5
Views
5K
  • Engineering and Comp Sci Homework Help
Replies
14
Views
2K
Replies
2
Views
2K
Replies
11
Views
6K
  • Programming and Computer Science
Replies
2
Views
3K
  • Calculus and Beyond Homework Help
Replies
1
Views
1K
  • Programming and Computer Science
Replies
4
Views
12K
  • General Engineering
Replies
5
Views
5K
Back
Top