[Kstars-devel] KDE/kdeedu/kstars/kstars
Akarsh Simha
akarshsimha at gmail.com
Fri Feb 13 14:23:09 CET 2009
SVN commit 925528 by asimha:
+ Estimate diameters of coma, nucleus and tail of comets
+ Represent comets with the angular size corresponding to the coma.
Nuclear diameters and tail lengths are unused parameters at the
moment, until we get a better representation of the comet.
Many thanks to Jeamy Lee for pointing me to the sources of the
formulae.
CCMAIL: kstars-devel at kde.org
M +19 -0 kscomet.cpp
M +18 -0 kscomet.h
--- trunk/KDE/kdeedu/kstars/kstars/kscomet.cpp #925527:925528
@@ -81,6 +81,23 @@
return true;
}
+void KSComet::findPhysicalParameters() {
+ // Compute and store the estimated Physical size of the comet's coma, tail and nucleus
+ // References:
+ // * http://www.projectpluto.com/update7b.htm#comet_tail_formula [Project Pluto / GUIDE]
+ // * http://articles.adsabs.harvard.edu//full/1978BAICz..29..103K/0000113.000.html [Kresak, 1978a, "Passages of comets and asteroids near the earth"]
+ NuclearSize = pow( 10, 2.1 - 0.2 * H );
+ double mHelio = H + 2.5 * G * log10( rsun() );
+ double L0, D0, L, D;
+ L0 = pow( 10, -0.0075 * mHelio * mHelio - 0.19 * mHelio + 2.10 );
+ D0 = pow( 10, -0.0033 * mHelio * mHelio - 0.07 * mHelio + 3.25 );
+ L = L0 * ( 1 - pow( 10, -4 * rsun() ) ) * ( 1 - pow( 10, -2 * rsun() ) );
+ D = D0 * ( 1 - pow( 10, -2 * rsun() ) ) * ( 1 - pow( 10, -rsun() ) );
+ TailLength = L * 1e6;
+ ComaSize = D * 1e3;
+ setPhysicalSize( ComaSize );
+}
+
bool KSComet::findGeocentricPosition( const KSNumbers *num, const KSPlanetBase *Earth ) {
double v(0.0), r(0.0);
@@ -177,6 +194,8 @@
nutate( num );
aberrate( num );
+ findPhysicalParameters();
+
return true;
}
--- trunk/KDE/kdeedu/kstars/kstars/kscomet.h #925527:925528
@@ -111,7 +111,17 @@
*/
inline float getAbsoluteMagnitude() { return H; }
+ /**
+ *@return the estimated tail length in km
+ */
+ inline float getTailLength() { return TailLength; }
+ /**
+ *@return the estimated diameter of the nucleus in km
+ */
+ inline float getNuclearSize() { return NuclearSize; }
+
+
protected:
/**Calculate the geocentric RA, Dec coordinates of the Comet.
*@note reimplemented from KSPlanetBase
@@ -121,10 +131,18 @@
*/
virtual bool findGeocentricPosition( const KSNumbers *num, const KSPlanetBase *Earth=NULL );
+ /**
+ *@short Estimate physical parameters of the comet such as coma size, tail length and size of the nucleus
+ *@note invoked from findGeocentricPosition in order
+ */
+ void findPhysicalParameters();
+
+
private:
KStarsData *kd;
long double JD, JDp;
double q, e, a, P;
+ double TailLength, ComaSize, NuclearSize; // All in kilometres
float H, G;
dms i, w, N;
More information about the Kstars-devel
mailing list