[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