GNU Gama LocalNetworkAdjustmentResults: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
Řádek 16: Řádek 16:
;network_general_parameters: obecné parametry výsledků vyrovnání
;network_general_parameters: obecné parametry výsledků vyrovnání


<source lang="cpp">
     struct
     struct
     {
     {
Řádek 26: Řádek 27:
      
      
     } network_general_parameters;
     } network_general_parameters;
</source>


; coordinates_summary: statistika souřadnic bodů
; coordinates_summary: statistika souřadnic bodů


<source lang="cpp">
     struct count
     struct count
     {
     {
Řádek 41: Řádek 44:
      
      
     } coordinates_summary;
     } coordinates_summary;
</source>


; observations_summary: statistika měření
; observations_summary: statistika měření


<source lang="cpp">
     struct
     struct
     {
     {
Řádek 56: Řádek 61:
      
      
     } observations_summary;
     } observations_summary;
</source>


;fixed_points, approximate_points, adjusted_points: seznamy souřadnic pevných, přibližných a vyrovnaných souřadnic bodů
;fixed_points, approximate_points, adjusted_points: seznamy souřadnic pevných, přibližných a vyrovnaných souřadnic bodů


<source lang="cpp">
     struct Point
     struct Point
     {
     {
Řádek 78: Řádek 85:
     typedef std::vector<Point> PointList;
     typedef std::vector<Point> PointList;
     PointList  fixed_points, approximate_points, adjusted_points;
     PointList  fixed_points, approximate_points, adjusted_points;
</source>


;orientations: vyrovnané oriantační posuny
;orientations: vyrovnané oriantační posuny


<source lang="cpp">
     struct Orientation
     struct Orientation
     {
     {
Řádek 91: Řádek 100:
     typedef std::vector<Orientation> OrientationList;
     typedef std::vector<Orientation> OrientationList;
     OrientationList orientations;
     OrientationList orientations;
</source>


;cov: kovarianční matice vyrovnaných neznámých parametrů (souřadnice a orientační paramatery)
;cov: kovarianční matice vyrovnaných neznámých parametrů (souřadnice a orientační paramatery)
Řádek 96: Řádek 106:
;original_index: původní indexy neznámých parametrů ve vyrovnání
;original_index: původní indexy neznámých parametrů ve vyrovnání


<source lang="cpp">
     std::vector<int> original_index;
     std::vector<int> original_index;
</source>


;obslist: seznam vyrovnaných měření
;obslist: seznam vyrovnaných měření


<pre>
<source lang="cpp">
     struct Observation
     struct Observation
     {
     {
Řádek 136: Řádek 148:
     typedef std::vector<Observation> ObservationList;
     typedef std::vector<Observation> ObservationList;
     ObservationList  obslist;
     ObservationList  obslist;
</pre>
</source>


=== xml_tag ===
=== xml_tag ===
Řádek 161: Řádek 173:
Třída <code>GNU_Gama::LocalNetworkAdujstmentResults</code> je použita v programu <code>gama-local-xml2txt</code> pro konverzi XML formátu do textového výstupu výsledků vyrovnání programu <code>gama-local</code>.
Třída <code>GNU_Gama::LocalNetworkAdujstmentResults</code> je použita v programu <code>gama-local-xml2txt</code> pro konverzi XML formátu do textového výstupu výsledků vyrovnání programu <code>gama-local</code>.


<pre>
<source lang="cpp">
typedef GNU_gama::LocalNetworkAdjustmentResults Adjustment;
typedef GNU_gama::LocalNetworkAdjustmentResults Adjustment;
typedef GNU_gama::OutStream                    OutStream;
typedef GNU_gama::OutStream                    OutStream;
Řádek 194: Řádek 206:
     }
     }
}
}
</pre>
</source>


[[Kategorie:GNU]]
[[Kategorie:GNU]]

Verze z 1. 7. 2008, 11:44

Třída GNU_Gama::LocalNetwork AdujstmentResults projektu GNU Gama je určena pro pro čtení výsledků vyrovnání programu gama-local ve formátu XML.

Hlavičkový soubor
#include <gnu_gama/xml/localnetwork_adjustment_results.h>
DTD
http://www.gnu.org/software/gama/gama-local-adjustment.dtd

Veřejné členy

LocalNetwork AdujstmentResults()
implicitní konstruktor
void read_xml(std::istream&) throw(Exception::parser)
metoda read() načítá ze vstupního proudu výsledky vyrovnání programu gama-local ce formátu XML a uloží je do veřejných datových členů třídy LocalNetwork AdujstmentResults
bool gons
typ úhlové míry (400/360)
network_general_parameters
obecné parametry výsledků vyrovnání
    struct
    {
      std::string gama_local_version;
      std::string gama_local_algorithm;
      std::string gama_local_compiler;
      std::string epoch;
      std::string axes_xy;
      std::string angles;
    
    } network_general_parameters;
coordinates_summary
statistika souřadnic bodů
    struct count
    {
      int xyz, xy, z;
    };
    
    struct
    {
      count adjusted;
      count constrained;
      count fixed;
    
    } coordinates_summary;
observations_summary
statistika měření
    struct
    {
      int distances;
      int directions;
      int angles;
      int xyz_coords;
      int h_diffs;
      int z_angles;
      int s_dists;
      int vectors;
    
    } observations_summary;
fixed_points, approximate_points, adjusted_points
seznamy souřadnic pevných, přibližných a vyrovnaných souřadnic bodů
    struct Point
    {
      std::string id;
      double x, y, z;
      
      bool   hxy, hz;             // point has   x, y, z
      bool   cxy, cz;             // constrained x, y, z
      int    indx, indy, indz;    // adjustment indexes
      
      void clear()
      {
        x=y=z=0;
        hxy=hz=cxy=cz=false;
        indx=indy=indz=0;
      }
    };
    
    typedef std::vector<Point> PointList;
    PointList  fixed_points, approximate_points, adjusted_points;
orientations
vyrovnané oriantační posuny
    struct Orientation
    {
      std::string id;
      double      approx;
      double      adj;
      int         index;          // adjustment index
    };
    
    typedef std::vector<Orientation> OrientationList;
    OrientationList orientations;
cov
kovarianční matice vyrovnaných neznámých parametrů (souřadnice a orientační paramatery)
original_index
původní indexy neznámých parametrů ve vyrovnání
    std::vector<int> original_index;
obslist
seznam vyrovnaných měření
    struct Observation
    {
      std::string xml_tag;
      std::string from;
      std::string to;
      std::string left;         // used in angle observation
      std::string right;        //  ....   angle   ....

      double obs;               // observed value
      double adj;               // adjusted
      double stdev;             // standard deviation of adj. value
      double qrr;               // weight coefficient of the residual
      double f;

      double      std_residual; // standardized residual
      std::string err_obs;      // estimate of observed value error
      std::string err_adj;      //  ....       adjusted  ....

      void clear()
      {
        obs = adj = stdev = qrr = f = std_residual = 0;
        xml_tag     .clear();
        from        .clear();
        to          .clear();
        left        .clear();
        right       .clear();
        err_obs     .clear();
        err_adj     .clear();
      }

      double residual() const throw();
    };

    typedef std::vector<Observation> ObservationList;
    ObservationList  obslist;

xml_tag

Hodnoty atributu xml_tag jsou XML značky definované v DTD pro značku <observation>

distance
direction
angle
height-diff
slope-distance
zenith-angle
dx
dy
dz
coordinate-x
coordinate-y
coordinate-z

Číslo stanoviska je vždy uloženo v atrinutu from, číslo cíle obvykle v to s výjimkou měřených úhlů, pro které jsou čísla levého a pravého cíle ukládána v atributech left a right (levá a pravá záměra).

Příklad

Třída GNU_Gama::LocalNetworkAdujstmentResults je použita v programu gama-local-xml2txt pro konverzi XML formátu do textového výstupu výsledků vyrovnání programu gama-local.

typedef GNU_gama::LocalNetworkAdjustmentResults Adjustment;
typedef GNU_gama::OutStream                     OutStream;

int main(int argc, char* argv[])
{
  Adjustment adj;
  OutStream  out(&std::cout);
  set_gama_language(en);

  try
    {
      if (const int k = parameters(argc, argv, adj, out)) return k;

      adj.read_xml(std::cin);

      general_parameters   (out, adj);
      adjusted_parameters  (out, adj);
      adjusted_observations(out, adj);
    }
  catch (GNU_gama::Exception::parser perr)
    {
      std::cerr << "parser error : " << perr.error_code
                << "  line : "       << perr.line
                << "  text : "       << perr.str
                << std::endl;
      return 1;
    }
  catch (...)
    {
      std::cerr << "unknown exception\n";
    }
}