pax_global_header00006660000000000000000000000064147703526160014525gustar00rootroot0000000000000052 comment=d6b71ef39949ad84b0d5283ba7886d73604a80b1 totalopenstation-0.5.3/000077500000000000000000000000001477035261600151415ustar00rootroot00000000000000totalopenstation-0.5.3/.github/000077500000000000000000000000001477035261600165015ustar00rootroot00000000000000totalopenstation-0.5.3/.github/FUNDING.yml000066400000000000000000000001201477035261600203070ustar00rootroot00000000000000# These are supported funding model platforms github: psolyca liberapay: steko totalopenstation-0.5.3/.github/ISSUE_TEMPLATE/000077500000000000000000000000001477035261600206645ustar00rootroot00000000000000totalopenstation-0.5.3/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000012321477035261600233540ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: "[BUG]" labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - Operating system: [e.g. Windows] - Software version [e.g. 0.4] **Additional context** Add any other context about the problem here. totalopenstation-0.5.3/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000011341477035261600244100ustar00rootroot00000000000000--- name: Feature request about: Suggest an idea for this project title: "[FEATURE]" labels: '' assignees: '' --- **Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd like** A clear and concise description of what you want to happen. **Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. **Additional context** Add any other context or screenshots about the feature request here. totalopenstation-0.5.3/.github/workflows/000077500000000000000000000000001477035261600205365ustar00rootroot00000000000000totalopenstation-0.5.3/.github/workflows/pyinstaller.yml000066400000000000000000000023361477035261600236330ustar00rootroot00000000000000name: pyinstaller on: release: types: [published] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies and package run: | python -m pip install --upgrade pip pip install PyInstaller pip install . - name: Build with PyInstaller run: | pyinstaller.exe totalopenstation-gui.spec - name: Get version from latest release id: get_version uses: battila7/get-version-action@v2 - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} asset_path: ./dist/totalopenstation.exe asset_name: totalopenstation_x64_${{ steps.get_version.outputs.version-without-v }}.exe asset_content_type: application/octet-stream totalopenstation-0.5.3/.github/workflows/pytest.yml000066400000000000000000000024131477035261600226110ustar00rootroot00000000000000# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: pytest on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "pypy3.8"] os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install flake8 pytest pip install . - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest totalopenstation-0.5.3/.gitignore000066400000000000000000000013651477035261600171360ustar00rootroot00000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] # C extensions *.so # Distribution / packaging .Python env/ build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ *.egg-info/ .installed.cfg *.egg # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .cache nosetests.xml coverage.xml # Translations *.mo *.pot # Django stuff: *.log # Sphinx documentation docs/_build/ # PyBuilder target/ .spyderproject .spyderworkspace sample_data/test.txt totalopenstation.psp totalopenstation-0.5.3/.readthedocs.yaml000066400000000000000000000011331477035261600203660ustar00rootroot00000000000000# .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-20.04 tools: python: "3.10" # Build documentation in the docs/ directory with Sphinx sphinx: configuration: docs/conf.py # If using Sphinx, optionally build your docs in additional formats such as PDF # formats: # - pdf # Optionally declare the Python requirements required to build your docs python: install: - requirements: docs/requirements.txt totalopenstation-0.5.3/.tx/000077500000000000000000000000001477035261600156525ustar00rootroot00000000000000totalopenstation-0.5.3/.tx/config000066400000000000000000000003121477035261600170360ustar00rootroot00000000000000[main] host = https://www.transifex.com [totalopenstation.totalopenstation-app] file_filter = locale//LC_MESSAGES/messages.po source_file = locale/totalopenstation.pot source_lang = en type = PO totalopenstation-0.5.3/AUTHORS000066400000000000000000000007471477035261600162210ustar00rootroot00000000000000Authors Stefano Costa Damien Gaignon Luca Bianconi Contributors Alessandro Bezzi Andrea Fratta Anna Hodgkinson Hannah Petten Filip Kłosowski Werner Macho Allan Nordhøy Translators Kostis Papaspyrou: Greek Wasilis Mandratzis: Greek, German Mohammad Hosseini: Farsi Filip Kłosowski: Polish Allan Nordhøy: Norwegian (Bokmål) Falu: Hungarian Rui: Portuguese (Brazil), Portuguese (Portugal) Packagers Matteo F. Vescovi (Debian) Angelos Tzotzos (OpenSUSE) Volker Frohlich (Fedora) totalopenstation-0.5.3/CODE_OF_CONDUCT.md000066400000000000000000000064471477035261600177530ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at totalopenstation@openarchaeology.eu. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq totalopenstation-0.5.3/CONTRIBUTING.md000066400000000000000000000170431477035261600173770ustar00rootroot00000000000000# Contribution Guidelines ## Table of Contents - [Contribution Guidelines](#contribution-guidelines) - [Introduction](#introduction) - [Bug reports](#bug-reports) - [Discuss your design](#discuss-your-design) - [Testing](#testing) - [Translation](#translation) - [Code review](#code-review) - [Styleguide](#styleguide) - [Design guideline](#design-guideline) - [Developer Certificate of Origin (DCO)](#developer-certificate-of-origin-dco) - [Release Cycle](#release-cycle) - [Maintainers](#maintainers) - [Owners](#owners) - [Versions](#versions) - [Releasing Total Open Station](#releasing-total-open-station) - [Copyright](#copyright) ## Introduction This document explains how to contribute changes to the Total Open Station project. It assumes you have followed the [installation instructions](https://totalopenstation.readthedocs.io/en/stable/installing.html), with particular reference to the section detailing the use of pip and virtualenv. ## Bug reports Please search the issues on the issue tracker with a variety of keywords to ensure your bug is not already reported. If unique, [open an issue](https://github.com/steko/totalopenstation/issues/new) and answer the questions so we can understand and reproduce the problematic behavior. To show us that the issue you are having is in Total Open Station itself, please write clear, concise instructions so we can reproduce the behavior— even if it seems obvious. The more detailed and specific you are, the faster we can fix the issue. Check out [How to Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html). Please be kind, remember that Total Open Station comes at no cost to you, and you're getting free help. ## Discuss your design The project welcomes submissions. If you want to change or add something, please let everyone know what you're working on—[file an issue](https://github.com/steko/totalopenstation/issues/new)! Significant changes must go through the change proposal process before they can be accepted. To create a proposal, file an issue with your proposed changes documented, and make sure to note in the title of the issue that it is a proposal. This process gives everyone a chance to validate the design, helps prevent duplication of effort, and ensures that the idea fits inside the goals for the project and tools. It also checks that the design is sound before code is written; the code review tool is not the place for high-level discussions. ## Testing Before submitting a pull request, run all the tests for the whole tree to make sure your changes don't cause regression elsewhere. Here's how to run the test suite: - Install pytest - Run pytest from the root of the source tree ## Translation We do all translation work inside [Transifex](https://www.transifex.com/projects/p/totalopenstation/resource/totalopenstation-app/). Once a translation has reached 100% it will be synced back into this repo and included in the next released version. ## Building Total Open Station To build a distribution: - python setup.py sdist bdist_wheel Distributions are uploaded to PyPI with twine. ## Code review Changes to Total Open Station must be reviewed before they are accepted—no matter who makes the change, even if they are an owner or a maintainer. We use GitHub's pull request workflow to do that. The repository is setup to ensure every PR is reviewed by at least 1 maintainer. Please try to make your pull request easy to review for us. And, please read the [How to get faster PR reviews](https://github.com/kubernetes/community/blob/261cb0fd089b64002c91e8eddceebf032462ccd6/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) guide; it has lots of useful tips for any project you may want to contribute. Some of the key points: * Make small pull requests. The smaller, the faster to review and the more likely it will be merged soon. * Don't make changes unrelated to your PR. Maybe there are typos on some comments, maybe refactoring would be welcome on a function... but if that is not related to your PR, please make *another* PR for that. * Split big pull requests into multiple small ones. An incremental change will be faster to review than a huge PR. ## Styleguide Currently we don't enforce any particular style other than PEP-8. However, consider using [black](https://black.readthedocs.io/en/stable/). ## Design guideline To maintain understandable code it is important to have a good structure of the code. At a general level, the Total Open Station library code is divided into the following parts: - **formats:** Parsers for importing data, each format has a separate module - **models:** Default settings for some total station devices - **output:** Builders for exporting data, each format has a separate module - **tests:** Tests for parsers and builders - **utils:** Small functions that are needed for both command line and graphical interfaces ## Developer Certificate of Origin (DCO) We consider the act of contributing to the code by submitting a Pull Request as the "Sign off" or agreement to the certifications and terms of the DCO and GNU General Public License. No further action is required. Additionally you could add a line at the end of your commit message. ``` Signed-off-by: Joe Smith ``` If you set your `user.name` and `user.email` git configs, you can add the line to the end of your commit automatically with `git commit -s`. We assume in good faith that the information you provide is legally binding. ## Maintainers To make sure every pull request is checked, it **MUST** be reviewed by at least one maintainer (or owner) before it can get merged. A maintainer should be a contributor of Total Open Station and contributed at least 4 accepted PRs. The owners or the team maintainers may invite the contributor. A maintainer should spend some time on code reviews. For security reasons, Maintainers should use 2FA for their accounts and if possible provide gpg signed commits. https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/ https://help.github.com/articles/signing-commits-with-gpg/ ## Owners Total Open Station is a pure community organization without any company support. Currently, the owners are @steko and @psolyca. A process to elect owners may be introduced in the future if the number of maintainers will grow. For security reasons, owners or any account with write access (like a bot) must use 2FA. https://help.github.com/articles/securing-your-account-with-two-factor-authentication-2fa/ ## Versions Total Open Station has the `master` branch as a tip branch and there are no version branches. When a release is ready, we will tag `v0.6.0` for binary download. If `v0.6.0` has bugs, we will accept bugfixes and publish a `v0.6.1` tag, from the master branch. We follow [PEP-440 compatible semantic versioning](https://www.python.org/dev/peps/pep-0440/#id50). ## Releasing Total Open Station For the moment, see the corresponding section in the documentation, [Releasing a new Total Open Station version](https://totalopenstation.readthedocs.io/en/stable/contributing/main.html#releasing-a-new-total-open-station-version). ## Copyright Code that you contribute should use the standard copyright header: ``` // Copyright 2019 The Total Open Station Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. ``` Files in the repository contain copyright from the year they are added to the year they are last changed. If the copyright author is changed, just paste the header below the old one. totalopenstation-0.5.3/COPYING.txt000066400000000000000000001043741477035261600170230ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . totalopenstation-0.5.3/MANIFEST.in000066400000000000000000000003041477035261600166740ustar00rootroot00000000000000recursive-include docs *.rst recursive-include locale *.mo *.po recursive-include sample_data * recursive-include data *.desktop *.svg *.png include AUTHORS include COPYING.txt include README.txt totalopenstation-0.5.3/README.rst000066400000000000000000000051121477035261600166270ustar00rootroot00000000000000==================== Total Open Station ==================== .. image:: https://github.com/totalopenstation/totalopenstation/actions/workflows/pytest.yml/badge.svg :alt: pytest continuous integration .. image:: https://img.shields.io/pypi/v/totalopenstation :target: https://pypi.org/project/totalopenstation/ :alt: PyPI .. image:: https://img.shields.io/readthedocs/totalopenstation :target: https://totalopenstation.readthedocs.io/ :alt: Read the Docs | Total Open Station is a program for downloading and processing survey data from total station devices. .. image:: https://tops.iosa.it/img/totalopenstation-gui.gif Total Open Station is a good choice if: - you work with total stations on GNU/Linux (and MacOS, probably) - you work with old devices that are unsupported by vendors - you need to process hundreds of data files at once We think Total Open Station is small but great because: - it is *free/libre open source software* - it works on *any* operating system where Python is available - it is designed to support as many devices and formats as possible, all within the same program, opposed to having one program per device - it works both on the command line and with a graphical interface Total Open Station uses a modular structure and keeps the downloading of data logically separated from its processing, thus enabling exporting data to a variety of output formats, even at a later moment. Archiving of raw data is made easy by using plain text files. Installing ========== If you're comfortable with the command line: .. code-block:: bash pip install totalopenstation Windows users can download the portable app from the GitHub `releases page `_. GNU/Linux users can find the `totalopenstation` package in some distributions (OpenSUSE, Debian, Ubuntu). Make sure that `python3-tk` or `python3-tkinter` is installed on your system, otherwise install it with your package manager (apt, dnf, pacman). Documentation ============= Documentation is online at http://totalopenstation.readthedocs.io/ with an user guide, details on the application structure, supported models and other interesting stuff. Development =========== Total Open Station is developed by @steko, @psolyca and other contributors, including translators and providers of sample data. We are not professional software developers but we do our best to follow modern good practice. Feel free to submit a feature request or a pull request on GitHub. The application icons are copyright by Lapo Calamandrei 2008, under the same license as Total Open Station. totalopenstation-0.5.3/data/000077500000000000000000000000001477035261600160525ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/000077500000000000000000000000001477035261600171655ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/16x16/000077500000000000000000000000001477035261600177525ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/16x16/totalopenstation.png000066400000000000000000000012501477035261600240650ustar00rootroot00000000000000PNG  IHDRasBIT|d_IDAT8uOSA3--!!GhBcpa\ˢDYi1FŰ2(&.4DٸB#TZ(z{;.G93##xvp.++}3spf+C=nSS'3sgv򮕱9*\Xޒͱu'YC@!@GeZ]M{Do7!>[$M] Z_brQ \ca3D-j$g4N( U@H w!eXXqM g26(%/Vi?Jh*BJx8'G ܚM?MJ 8˝ŌMMRr$Xq384ʃ hWenV^@n}᪬$`jj_(WKX[Kl&&&]QBZJu_|@QR@JSU \.l"m6Ւ mv6!=}'IU;Z!5MPmDjŏ"2af&LO[8oKIENDB`totalopenstation-0.5.3/data/icons/16x16/totalopenstation.svg000066400000000000000000000467361477035261600241220ustar00rootroot00000000000000 image/svg+xml Lapo Calamandrei totalopenstation-0.5.3/data/icons/22x22/000077500000000000000000000000001477035261600177445ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/22x22/totalopenstation.png000066400000000000000000000015161477035261600240640ustar00rootroot00000000000000PNG  IHDRĴl;sBIT|dIDAT8MhTWݗgf 3NMڨ4ikcP(.J. r/%.`iAp㦠4.THjhChd:$NwOʤ{9]ªysGSȄV낋5;5U;P`$gc ]r]q]N"L>C9R%ϰXHDu(e8΍>2.x'<}U[G1dqOρN΂FO8 `ƿ]^bW,"`<$a RmEiY <э6'z^. "/[Vo ?޿`|_LcK!ŁzǓ-fzzޥ.q}/TT"m?zL__ ZkL%J5;pimD6e:'V%VTuō_oֶ7iZ`b>㿏a{[r_axoԦ(y] דL  +v7+ܟǺZ=TYaE0z)M)G!^zUi]iB4n!rH?g`˲{OK#:[d˔ee3Xj \o}p du{`F_4Z/ ξ[6]iC ԃiǙy+Fd#¯yhCsNCCIJ}׶}y2y)>2X@~50,8x/.2@ xj FKcqIENDB`totalopenstation-0.5.3/data/icons/22x22/totalopenstation.svg000066400000000000000000000475031477035261600241050ustar00rootroot00000000000000 image/svg+xml Lapo Calamandrei totalopenstation-0.5.3/data/icons/24x24/000077500000000000000000000000001477035261600177505ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/24x24/totalopenstation.png000066400000000000000000000025311477035261600240660ustar00rootroot00000000000000PNG  IHDRbKGD X pHYsHHFk> vpAgxLIDATXWMLSK텶RRA VEX+aa4qabq&MHذ1H%" X"ˏ P  w[LnO=7͗Ν93ڟ5)]We0 U5]B22L5-tرfUHGN_([Ttk[{ 0 3ƘKgg[+ڵmkjCU79Xlu0-|b͛%]] 2|(Ę`?./[ݻ> bGN!kUUN:DzLoIUAƀ2nlX,gg;w^23Ο_46vv=} } ζZ-xNN;:Z['OJJ~HlsMKEzQQ*B033553&Sfh6p8l6Jp8^^VjZZޖ ////7DH zR@]ݙ3}PXXXot9RR;v0uu!{eԴKHUm@yAPW,.MMݝT4(ywgd@MCww( K(3vv-8? I'oܭJHm4q9c@o7T)87ڿXaaYxr*AAJeEeXYH$IW,R^~צ٬Y7LM 9y\$Qk"%"!REOn>{V,s7J.=$McRJ|(--))-F)3~ A`bb||r߿.\sscthw?edg_(`K!d2ijB!(HD4M斖BP5ik߿ \X8;+ƚ_Jaz-l1c ׻ q pXTg`tIENDB`totalopenstation-0.5.3/data/icons/32x32/000077500000000000000000000000001477035261600177465ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/32x32/totalopenstation.png000066400000000000000000000030131477035261600240600ustar00rootroot00000000000000PNG  IHDR szzsBIT|dIDATXL?{/pE\Ь5%ņbҕ5,1Qcn.&5[,֊[\lmRPK=ge<9}|y=Giv5vU'b%KKww$WL5Ng`'Z0RyIw|wJ3Ỳ~W>üˌLX+靫:>zJǷf=~.0(YTh9.[h2#[9|[&"? &wfj϶rW' EdNVBMTd|lJ0t+&`n@NRrK^P(LIi mTT򏰺HHϤRK|zVFۑy6LB qPAFyrP/:Bt`/3)AH({g=p\ !̲@H"HTlu~3׃I,g )ckic!@|&htϯgwTjC82O\OnΟ30&݉BJ|>J-kg.$ՀQlÆ[o7ccݹ),.wuQR^N^+{]06&kujf袑yaAz֝Mm,y+l>`#Px]X)eS|/&&}j^N} 2`E'}lmfa͌M@/A 8I@Gm@(NKɄt image/svg+xml Lapo Calamandrei totalopenstation-0.5.3/data/icons/48x48/000077500000000000000000000000001477035261600177645ustar00rootroot00000000000000totalopenstation-0.5.3/data/icons/48x48/totalopenstation.png000066400000000000000000000076321477035261600241110ustar00rootroot00000000000000PNG  IHDR00%bKGD X pHYsHHFk> vpAg00W%IDATxitTU5$*sR$ I b u?mBDQ6H\-Bidz MB O|"jpJ"D!CRIUfTR*U}.כ"|Ы_sg?gs9.Qvϊ´cʒ.~gȨ '~7O;׽P!sb雳0fL||!7wnEjIEQ . I};vR8_3R( !! I6ۉsOܲt:hlEaMF!'Ļ2sNT >?=t66߿#$Z, IMM׫8~n6Ahoeg' g޽s`/F%bap8,l ?RQtA,G]]'OV;vljRc{N7緵/oܘ ]]õZX*-M9six\+$>'JQ}dHM9stHM5r:6lbز% @aE_\Bs禥AqqQ CCCB`֬Yf̀ɓN<?tzjC7H3^Å rZjj`ڵk׮1 hAAZ/Lf@/DDtp8mm{ݻg=zQtvvByRY+|ddsF~7990a„ S$%A``PEEEE%%PXXPPX Zmttr/]!HN_Zg@JJLV fmN}8{&Ӱa.aߩSv;_Zk Pp}!!&I'O%%V+i{^iߞ|5d`B^UH(B~E=S =t I!G(N r ?v:۫|݋c ОmӀ,v"h))׃Qs:n,/_.IetwMi5"{}{?~guH W1'Z'? |pًS*:c$%ō 񐘘JZfl6٬VYlUUPRRVf?71d$K/ ^/z=,y`3"_c,gA{O? NŲcǎv\W^؅ .t*2 ܔ)׽U t4666yxU0); ,l̙3zUJ"ۡ=,,, BC̙3,d'd'@‰Ao>|pz|m|5oF#8{.ב#GRrrrr@U+hk+(((*Zު7T3o8x0 \> =zP Bnnn.? ھ3#.- Ŋ EvõB/UUUUL[M3, -Yw)YSVV\,'.r3fl3o]ifHN+!1q|t+i[KN>qb*=s;rF>\ Pe yyC fsVVV?CS2{B p8? }F> 0uIBBFlo?!wL X`(67l);v=6"ꛚ *ꡇ 22!hfvGED@+nwS ~LMʶ|HXrϞ'`BPZ{~Ba{'ZBB`E6oaV䬧7)cŠEP`\i/UʡEOTF]鐔~є)/Ir:his3`%j}%zw`L.yÚHU$9mmC^$8y?XÇ!`4 PZJjI I;w =f4fR?E٪~=A(+12dowASx?-tuVg?r BQ? jTIgφ;LZ%]^O_OIA()+yBigWPa Ѭ,0mPzN@kkϟ9 3mF#}l;xקkF#to&|bo팣hTź @jELyѿRP, LON)PuMˋ~⩧ ddtl4t Pb}oy4!bTиq`~q'rܾb}|n. :&n4ؖvnzV C@Y}=q[1HRssU|Af^4um0`|oҀL`|ofnr=p45$55zWP{572˙~̂.N:OiwߩYk+8&my4m YAiOi^kjmcBx6cioV7d (i~`z:$g 6[QHRWWg'헎Ìa&i\J(w2N] U֫ ҙfk2.^%QpWO{+q8Bߐ#@ٶGFȑ#F XfX񫖏AAvUr'_n^.ț>Ez S;wBlGMJ0ÃokqmG my<#S~_**oj9]Åo Gv[_x#rx A pGjj_]lr!Llr95/ܦ^3UOΆ!F#ŋŭf<, blVeesLߗp5`{bݺo74NuQljx47#愾3X>7hׇN)PoM_A}|!a^]@f437.OF#__Qr0>$[}eonyѳgef3!O4X b|Q`JL@oǴ^YE"!:P]w²?,~250}VR:ڳ\!6L5iDHXҾ/[뷡Ԓo7(lzb I{]U@1`46g]+ ښ[[A{¹sGhh[ۨȷ4{fĈibbv:]nW^yvov #ZE|f(oxDW&w&HT3o [6?y.3>A^&teѳ}o!w"i~XF]0f f (|/Hy vy$( оhOZG '&&&&guuuu}؟------FX|("""""Cu_ϱt:N-:s, pL3g! (1f⺏${v;}6ZVjN=Փ_ATssT{-,+! (((((cy8ܛ1Ws7k::::::Чe+h4/wfܟCNIIENDB`totalopenstation-0.5.3/data/icons/48x48/totalopenstation.svg000066400000000000000000000770731477035261600241320ustar00rootroot00000000000000 image/svg+xml Lapo Calamandrei totalopenstation-0.5.3/data/totalopenstation.desktop000066400000000000000000000002611477035261600230530ustar00rootroot00000000000000[Desktop Entry] Version=1.0 Type=Application Terminal=false Exec=totalopenstation-gui.py Name=Total Open Station Comment=Download and export survey data from your total station totalopenstation-0.5.3/docs/000077500000000000000000000000001477035261600160715ustar00rootroot00000000000000totalopenstation-0.5.3/docs/Makefile000066400000000000000000000061071477035261600175350ustar00rootroot00000000000000# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" clean: -rm -rf _build/* html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html @echo @echo "Build finished. The HTML pages are in _build/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) _build/dirhtml @echo @echo "Build finished. The HTML pages are in _build/dirhtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) _build/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) _build/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in _build/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) _build/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in _build/qthelp, like this:" @echo "# qcollectiongenerator _build/qthelp/TotalOpenStation.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile _build/qthelp/TotalOpenStation.qhc" latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex @echo @echo "Build finished; the LaTeX files are in _build/latex." @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ "run these through (pdf)latex." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) _build/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes @echo @echo "The overview file is in _build/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in _build/linkcheck/output.txt." doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) _build/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in _build/doctest/output.txt." totalopenstation-0.5.3/docs/_static/000077500000000000000000000000001477035261600175175ustar00rootroot00000000000000totalopenstation-0.5.3/docs/_static/tops.ico000066400000000000000000000021761477035261600212060ustar00rootroot00000000000000h(  64.cge\`^SWU64.cҁ\\\\\\\\\\\\\\bр]qb~_\&%;y ~\\zz\\\\\\\`]y\\yd0y\yy;\]\>>>>>>y]i]aЉ\\mmmmmmy p\\]_ bb6 c]G b\\\\\\\ b`Etotalopenstation-0.5.3/docs/_static/total-station-weblogo.png000066400000000000000000000135271477035261600244730ustar00rootroot00000000000000PNG  IHDR0ĊL%sBIT|d pHYs /!tEXtSoftwarewww.inkscape.org<tEXtAuthorLapo Calamandreiߑ*IDATx{|յǿkNDD "ЊH}ZA-VWzZV[Oz[[ZkZZyZޏ$!$'33$I8'&:gk{ffsDUI+Dr:<ĮVL&#VF܊>T_?i^ D-C捷K€۞ʵS3סpGo`sNh;1-oCJd^qt,B2Z~tرAuq9{ͮl\T]/EQո+#۠!B|鑑| {uH{}P*w7`L>v `(Y2;sOnlvGJd%WE P.EllAēޏdAFmpkG!"ėه-Wp . bd4ꘐk$+.Dnד8,X7֮gRfkdԵHk9DI`#\S6:Чo>YҾ]Su[K,{uS~aڭX!Bȼu2_v*dȐD"ҮnGE832Gp"D["nuң[tҙݻQXYlSFf;DADH#] D#]i97K׳ۛylt#-1}ڳɫBD _~rN`P""+D1z5> "" |ijLNG"r|("k\|k/|-Ϯq\X=2Rf{SAi=ЉHVk7h 19~OE4mý0MD.R-'ׁo@`:q,dR5D;m?> `}J#X(5$j[G"0pw@&膹%:HԳ D>@`T-)fS&3L4ce"ZIXYj@+P՟Ddd~YUokȃqF>QO8p '`?hET8MU7E.~/Ve0U 5"U=Z<#qyhqD]~PPEq !(E3ɣӁh9gDPU0ә9GUJD ;}/Hd5f%~903ciX14;Dl ŕ۝_ͤH`/ll 1@&FZܕd_u"R?ZSD1Sez`.i $4T Ff*|5iч`0Z2Umҳg'"YV8swf }H>޲\uX'`^\ \$dU՘'7ï]$ Nܗi9 svR? Tu ڢp=q}÷oЇf\}ÿԻ^=m=q=viToBp4>dW'K> 1DH&7LRG|2h}|W O(nm>Mw,FSK hs^+c'F!6 4!3m'J&81PnS\|rǓ/@N@6ۗ$0/QՖ NbFr5ʝ4z{ޘ:i=sFr'>)`\y$Ɍk?0y`/#`z^clrߊd/9)6̋_,NJ˜6dIMpZ&)ЀM*fs擛ⓩČgdr(2cf}N3e1 \83m>+:JO3}~rl;]%G?Օue~5{j]UGOgaFKyui3y^ݭH򝜂o|%! Ҟ_0K}fO/Fo3-x¼|uZp_M93 żk_Zv6"3fڽ^03KL92nO<Y o)Սswhoу3.ղw )dUcYQk 3FIQ륕b͉ɡ:2wm"9_NDfcRO~\23&Q_f #u/ 2;@w_+[1/dˆ$sJu_o{% ?ʗ 2@@YhHo+7gX% co#}p6%T^IQddN])ŷcH T} 8aIxP U-E))BGCk]6N7)\fǡUfj7;9tEDxi"rljh(VxRhGӪz)ft&Y(_Y~XDvYIΠ50w v4U :M-~{ggΊ/E)%Ѵv>^V+ӣ/|fs8wK8dƋ(eȵ343BOT9u1T¬΃A}gL a/h?Ë"%"=U/1 ,!a{mS "23zy+?HRfL̫Dک%SbUq"Lq2v5{?S&Pa7Y['f{hE*Q]!^QvwY5aaBq$|Ǎl|`f-pH2UY."UuSJ2?Zר}iw_2ymHN<ҶdcCFC!5+866)ߓͣU.}8Y=̦*jTUl\y ]tT5Yj`޲HsnH<;}p26E5=4~ dk*z*R$})ީPxϭ2Y6."# Ì`;?dyP?j:˅}WFQUNUH)?!Rf >DAne;¥5[v3CV@cqk"ry[}Y }cD$KDҿ#"E$SD=8UDZY ]DJ;CD`( }PϫKU+06\0 9@DrE$J" caTDa{$"Wax+U5ALsAި"KCC)^ߘN􏨈 yNq<*"Ed$?&f_EvwݣZ ]|+K :ʩ^{ Ln}$^:JE24VQw낛޺Q-1I4c89NP YysGC'*:I5r[d-װ\)Q4vQۧ|793/l>yi$m7i{4vFn\L<-+sBk>09Ӕ?ޓm?~HN#3ܛ)Y~z32!fx٤U}2(J0!g{wȕFiTVr191umiZ!Ҟs˪~9rLݮc׫sݤTQziw50] f!]g Dd ] CW`H7H/r>H `Wz/P-ʷ|`u7Z@yxd^Y#_̽Z1 N H ¢^)r5in!Z2ߤhC|4ێq_ vd6]qڠ}uX֝'KI;8Z"ėMw?nh4^n%<>%H+X&Hbu[e|=95jeF=!h̑v<:dB6Pmg"Q9QN"x1jfԓ*D/2yd%{ZN'lA{=zlJMaީXI"쯽  ˆd(3NToD*oX ;?7;e\]ʎ}A* vb6U}bnq/ȧC4D#ֽ3Esrv8U[p6vh-H^~"8%"%@m57lzkSܮyt9Nk[VnV|/4~)ܣ_)9L~N&P]˰mGYofKD^~ZHB˓u+6sv-FFo󮗔!BHd ?n#.N^jSԪ܅1əiDU,dNUkjkK$ qmz_,ԑYD,ɕGa=;E?~Xe ?k{ KDd$s]汧3?zhF-7!Ȁ:1;tv XϦ"E?bSod:ӔI#xI8[{IENDB`totalopenstation-0.5.3/docs/conf.py000066400000000000000000000223031477035261600173700ustar00rootroot00000000000000# -*- coding: utf-8 -*- # # Total Open Station documentation build configuration file, created by # sphinx-quickstart on Sat Feb 28 23:03:04 2015. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. import sys import os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. #sys.path.insert(0, os.path.abspath('.')) sys.path.insert(0, os.path.abspath('../')) sys.path.insert(0, os.path.abspath('../totalopenstation')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = 'Total Open Station' copyright = '2015-2025, Stefano Costa, Damien Gaignon and Luca Bianconi' author = 'Stefano Costa' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. version = '0.5' # The full version, including alpha/beta/rc tags. release = '0.5.3' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build', 'global.rst', ] # The reST default role (used for this markup: `text`) to use for all # documents. #default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. #keep_warnings = False rst_prolog = """ .. include:: /global.rst """ # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'alabaster' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. html_theme_options = { 'github_user': 'totalopenstation', 'github_repo': 'totalopenstation', 'github_type': 'star', 'github_count': 'true', 'github_button': True, 'description': 'Download and export field survey data from your total station' } # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = "tops.ico" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. #html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. html_use_smartypants = True # Custom sidebar templates, maps document names to template names. html_sidebars = { '**': [ 'about.html', 'navigation.html', 'relations.html', 'searchbox.html', 'donate.html', ] } # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'TotalOpenStationdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). 'papersize': 'a4paper', # The font size ('10pt', '11pt' or '12pt'). 'pointsize': '12pt', # Additional stuff for the LaTeX preamble. #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ ('index', 'TotalOpenStation.tex', 'Total Open Station Documentation', 'Stefano Costa, Damien Gaignon, Luca Bianconi', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ ('totalopenstation-cli-parser', 'totalopenstation-cli-parser', 'Total Open Station command line converter', ['Stefano Costa, Luca Bianconi'], 1), ('totalopenstation-cli-connector', 'totalopenstation-cli-connector', 'Total Open Station command line downloader', ['Stefano Costa, Luca Bianconi'], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ ('index', 'TotalOpenStation', 'Total Open Station Documentation', 'Stefano Costa, Damien Gaignon, Luca Bianconi', 'TotalOpenStation', 'Total Open Station downloads data from your total station into common formats', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False # Napoleon settings napoleon_google_docstring = True napoleon_numpy_docstring = True napoleon_use_ivar = True napoleon_use_param = False totalopenstation-0.5.3/docs/contributing/000077500000000000000000000000001477035261600206005ustar00rootroot00000000000000totalopenstation-0.5.3/docs/contributing/main.rst000066400000000000000000000352211477035261600222610ustar00rootroot00000000000000.. _contributing: =================================== Contributing to Total Open Station =================================== Total Open Station is free software, released under the GNU `General Public License v3`_ or (at your option) any later version. .. _`General Public License v3`: http://www.gnu.org/licenses/gpl-3.0.html Development is tracked with git. The main development repository is at `GitHub`_ where it's easy to fork the source code. |br| Experiments are welcome. Git allows for easy branching: you are encouraged to clone our repository and go crazy with new features, formats. Coding guidelines ================= We try to follow as much as possible `PEP-8 `_ String formatting ----------------- A lot of the functionality of Total Open Station is centered around text manipulation, both when parsing input data and exporting to output formats. For this reason the maintainters decided to standardize on usage of string formatting with the aim of making the code more readable and consistent. In short: - use f-strings_ everywhere in the ``totalopenstation`` package - the scripts in the ``scripts`` directory are the three user-facing programs that need their messages translated (see translations_ below): use old-style string formatting (also known as %-formatting or printf-style string formatting) for all string formatting in these scripts - do not use the ``str.format()`` method F-strings_ were introduced in Python 3.6, they are faster than other methods and allow writing code that is both more readable and less verbose. However f-strings are not compatible with gettext, the module used for translation. .. _f-strings: https://docs.python.org/3.6/whatsnew/3.6.html#whatsnew36-pep498 .. _translations: Translations ============ Helping ------- The main tool we use for translating Total Open Station is `Transifex`_. We are happy to accept translations for Total Open Station. Translations can be easily submitted and reviewed at our Transifex_ page. Translators get recognition for their valuable work. If your native language is missing, why don't you start translating Total Open Station right now? Releasing --------- When the release is approaching and the source strings are not going to change, declare string freeze. Source messages should be updated with one of ``xgettext``, ``pygettext`` or Babel_ (with the ``extract_messages`` command), producing ``totalopenstation.pot``, e.g.:: xgettext scripts/*.py -o locale/totalopenstation.pot The resulting PO template file mut be uploaded to Transifex for translators to work with:: tx push -s If there is an existing translation, ``msgmerge`` or Babel ``update_catalog`` should be used to update. Translators should be invited to submit new translations, either via ``.po`` files or Transifex_. When the translation period is over, pull the updated ``.po`` files from Transifex with:: tx pull -r totalopenstation.totalopenstation-app -a and check that the files are updated. Commit new files separately from updates. .. _Babel: http://babel.edgewall.org/wiki/Documentation/0.9/setup.html .. _Transifex: https://www.transifex.com/projects/p/totalopenstation/resource/totalopenstation-app/ If using Babel, compile the translated messages with:: python setup.py compile_catalog -d locale ======================================= Using Total Open Station as a library ======================================= All the functionality implemented in Total Open Station can be used independently, with the exception of the user interfaces. In other words, the classes for reading specific formats and those for writing well-known formats are entirely usable on their own. This is a feature. Example: a web app for converting total station data ==================================================== If you want to see how to write a web app to convert total station data in 50 lines of Python code, check out `TOPS in the Cloud `_. It is made with `Flask `_ and shows how to use Total Open Station as a programming library. .. warning:: TOPS in the Cloud is not maintained and does not receive security updates. Please don't use it in production. ================================== Developing with Total Open Station ================================== General remarks =============== .. _new: Adding a new format ------------------- There are hundreds of survey data formats out there. One by one, we will get them added into Total Open Station. Here's a general process that defines some minimum requirements when implementing new formats as input or output. Documentation _____________ Always write documentation for the format. Add a new document in the ``docs/input_formats/`` directory or amend the ``docs/output_formats/of_implemented.rst`` file of the source tree with a bare description, including: - raw (polar) or processed (cartesian) format - fixed-position based or fluid -- this changes the way the parser should work (input format) - which devices, manufacturers or software use this format - name of contributors - reference to the format if available Shortcomings of Total Open Station that the format exposes shouldn't be hidden, but rather made explicit both in code and documentation. Sample data ___________ Never commit support for a new format without including the relevant sample data in the ``sample_data`` directory. Generally speaking, sample data files should follow these simple rules: - quality is better than quantity, so prefer a smaller file with many different corner cases rather than a larger file with a bulk of ordinary data - multiple files are OK, if they serve the purpose of showing different issues with the format - files should be named with the same name of the Python module that implements the format, using a ``.tops`` extension, like ``topcon_gts.tops`` for a format implemented in a module named ``topcon_gts.py`` -- this will allow for simple automated tests Code ____ When you have fulfilled the two previous tasks, you can start writing code (or at least you should pretend doing that). New code is always better than old code, because you have learned better programming techniques, or because you are more confident with Total Open Station. Writing tests for your code isn't (yet) required, but it's highly encouraged. Don't break current practice. All code implementing new formats should not break the existing API. Changing the API should be done at the scale of the entire library, to take into account the many different needs of each format and parser. The development of Total Open Station is not in a stable shape, so expect the API to change in future versions. However, please understand that a new format parser is not the right place to do that. Processing data =============== Total Open Station use GeoJSON as its internal processing data following the `RFC 7946 `_ standard. |br| The library used to handle this format is `PyGeoif `_. |br| Thus, all data are build around a :class:`formats.Feature` class. |br| To be able to evaluate which type of data a :class:`formats.Feature` holds, a descriptor has been added as a property. |br| Those descriptors are: +------------+---------------------------------+-------------------------------------------+ | Descriptor | Explanation | Construction | +============+=================================+===========================================+ | PT | Simple point | .. code:: python | | | only coordinates | | | | | Feature(point, | | | | desc='PT', | | | | id=pid, | | | | point_name=point_name, | | | | dist_unit=dist_unit, | | | | attrib=attrib) | +------------+---------------------------------+-------------------------------------------+ | PO | Complexe point | .. code:: python | | | all information needed to | | | | compute coordinates | Feature(point, | | | | desc='PO', | | | | id=pid, | | | | point_name=point_name, | | | | angle_unit=angle_unit, | | | | z_angle_type=z_angle_type, | | | | dist_unit=dist_unit, | | | | dist_type=dist_type, | | | | azimuth=azimuth, | | | | angle=angle, | | | | z_angle=z_angle, | | | | dist=dist, | | | | th=th, | | | | ih=ih, | | | | ppm=ppl, | | | | prism_constant=prism_constant, | | | | station_name=station_name, | | | | attrib=attrib) | +------------+---------------------------------+-------------------------------------------+ | ST | Station point data | .. code:: python | | | | | | | | Feature(point, | | | | desc='ST', | | | | id=pid, | | | | point_name=station_name, | | | | angle_unit=angle_unit, | | | | dist_unit=dist_unit, | | | | ih=ih, | | | | hz0=hz0, | | | | attrib=attrib) | +------------+---------------------------------+-------------------------------------------+ | BS | Backsight information | .. code:: python | | | | | | | | Feature(point, | | | | desc='BS', | | | | id=pid, | | | | point_name=point_name, | | | | angle_unit=angle_unit, | | | | circle=circle) | +------------+---------------------------------+-------------------------------------------+ Types of values passed to the :class:`formats.Feature` class are : .. code-block:: python Feature(Point class, desc=str, id=int, point_name=str, angle_unit=str, z_angle_type=str, dist_unit=str, dist_type=str, angle=float, z_angle=float, dist=float, th=float, ih=float, hz0=float, circle=float, ppm=float, prism_constant=float, station_name=str, attrib=list) Those values are properties of the :class:`formats.Feature` class. Modules ======= For more in-depth knowledge of classes, we encourage reading the code @ `Github`_. .. toctree:: :maxdepth: 1 :glob: modules/* ============================================ Releasing a new Total Open Station version ============================================ Documentation ============= The documentation is included in the source tree, and is published online at `http://totalopenstation.readthedocs.org/ `_. Manual pages for the three scripts provided with TOPS are not available at the moment. Release ======= The version number is declared in ``totalopenstation/__init__.py`` and is propagated in other places from there, including ``setup.py`` and the “About” dialog. A *source distribution* is made using:: python setup.py sdist A *built distribution* is made using (e.g. for Windows installer):: python setup.py bdist --formats wininst We are currently following the `Python Packaging User Guide `_ and distributing sources and *wheels*. Windows portable app ==================== A portable Windows app is built with PyInstaller. Using Git Bash, from the root directory of the source repository of Total Open Station:: python.exe -m venv pyinst-env source pyinst-env/Scripts/activate pip.exe install -e . pip.exe install PyInstaller pyinstaller.exe totalopenstation-gui.spec This will create the file ``dist/totalopenstation.exe``, a portable single-file executable that will run from any compatible Windows system, even from USB sticks. There is a GitHub action setup to automatically build the portable app for each release. .. warning:: An executable built on 64 bit systems will not run on 32 bit systems .. _`installing PyInstaller on Windows`: http://pyinstaller.readthedocs.io/en/stable/installation.html#installing-in-windows totalopenstation-0.5.3/docs/contributing/modules/000077500000000000000000000000001477035261600222505ustar00rootroot00000000000000totalopenstation-0.5.3/docs/contributing/modules/input_formats.rst000066400000000000000000000027411477035261600257000ustar00rootroot00000000000000============= Input Formats ============= This module is used as a base for parsing input files. The main class is :class:`formats.Parser`. Each input format module has a child class named *FormatParser(Parser)*. Classes ======= .. automodule:: formats :members: :member-order: bysource :undoc-members: :show-inheritance: Constants ========= * .. data:: BUILTIN_INPUT_FORMATS Dictionnary that holds all input formats available in Total Open Station. Form of the dictionnary : { |br| 'parser_name': ('module_parser_name', 'FormatParser', 'Parser Name'), |br| } * .. data:: UNITS_CIRCLE Dictionnary that holds angle corresponding to the complet ride of a circle per units. Form of the dictionnary : { |br| 'name': numeric value of complet ride, |br| } * .. data:: UNKNOWN_STATION :class:`formats.Point` that holds arbitary coordinates of an unknown station. |br| These coordinates are not egals to zero to avoid negativ coordinates during computation. Point(10000, 10000, 100) * .. data:: UNKNOWN_POINT :class:`formats.Point` that holds arbitary coordinates of an unknown point. |br| These coordinates are negatives to be able to check them during computation. Point(-1, -1, -1) * .. data:: COORDINATE_ORDER tuple that holds possible coordinates order in some input formats. ('NEZ', 'ENZ') totalopenstation-0.5.3/docs/contributing/modules/models.rst000066400000000000000000000011061477035261600242630ustar00rootroot00000000000000====== Models ====== This module is used as a base for models submodules. The main class is :class:`models.Connector`. Each model module has a child class named *ModelConnector(Connector)*. Classes ======= .. automodule:: models :members: :member-order: bysource :undoc-members: :show-inheritance: Constants ========= * .. data:: BUILTIN_MODELS Dictionnary that holds all models available in Total Open Station. Form of the dictionnary : { |br| 'model_name': ('module_name', 'ModelConnector' or 'CustomConnector', 'Model Name'), |br| } totalopenstation-0.5.3/docs/contributing/modules/output_formats.rst000066400000000000000000000015421477035261600260770ustar00rootroot00000000000000============== Output Formats ============== There is not yet a main module with a parent class for output formats. By the way, the main class is :class:`output.Builder`. Each output format module has a child class named *OutputFormat(Builder)*. Classe ====== .. automodule:: output :members: Builder :member-order: bysource :undoc-members: :show-inheritance: Constants ========= .. data:: BUILTIN_OUTPUT_FORMATS Dictionnary that holds all output formats available in Total Open Station. { |br| 'dxf': ('tops_dxf', 'OutputFormat', 'DXF'), |br| 'csv': ('tops_csv', 'OutputFormat', 'CSV'), |br| 'sql': ('tops_sql', 'OutputFormat', 'OGC-SQL'), |br| 'dat': ('tops_dat', 'OutputFormat', 'DAT'), |br| 'txt': ('tops_txt', 'OutputFormat', 'Text'), |br| 'geojson': ('tops_geojson', 'OutputFormat', 'GeoJSON'), |br| } totalopenstation-0.5.3/docs/contributing/modules/test.rst000066400000000000000000000003731477035261600237640ustar00rootroot00000000000000========== Test suits ========== This module is used for test purpose. Each new format or new function should have a test suits. Classes ======= .. automodule:: tests :members: :member-order: bysource :undoc-members: :show-inheritance:totalopenstation-0.5.3/docs/faq.rst000066400000000000000000000014361477035261600173760ustar00rootroot00000000000000.. _faq: ================================================ Frequently Asked Questions (and some answers!) ================================================ I cannot connect to the COM port on Windows =========================================== If you get errors like:: SerialException: could not open port COM4: [Error 5] Access denied try disabling and enabling again the COM port from the control panel. Often these errors show a flip-flop behavior: opening a serial port works fine the first time, but not the second. This is because serial ports need to be explicitly closed by programs, otherwise they will remain blocked. Also, tools like Portmon_ help with troubleshooting problems with serial ports on Windows. .. _Portmon: http://technet.microsoft.com/en-us/sysinternals/bb896644 totalopenstation-0.5.3/docs/global.rst000066400000000000000000000004511477035261600200630ustar00rootroot00000000000000.. |br| raw:: html
.. _`Github`: https://github.com/steko/totalopenstation/ .. _`bug tracker`: https://github.com/steko/totalopenstation/issues .. _`pull request`: https://github.com/steko/totalopenstation/pulls .. _`support channel`: https://github.com/steko/totalopenstation/issues totalopenstation-0.5.3/docs/glossary.rst000066400000000000000000000024501477035261600204670ustar00rootroot00000000000000.. _glossary: Glossary ======== .. glossary:: input format An input format is the way data downloaded from the total station are encoded. This might include a default order for X, Y and Z coordinates, particular ways of prefixing each point with some distinctive text string and other features. Each input format is unique, and it requires a dedicated module. Input formats are not readable by common CAD or GIS software packages, and it is TOPS's work to export them. These formats have a standard name, either given by the manufacturer or by the TOPS development team. model When we refer to a *model* we mean all total stations that have the same brand name and manufacturer (e.g. all those labeled “Trimble Geodimeter 600”). output format A format readable by GIS, CAD or any sort of common software, like CSV or DXF. serial-USB adapter While most total stations have a serial interface (port and cable), modern PCs and laptops tend to have just USB ports. In such cases, it is possible to use a serial-USB adapter cable, that enables you to connect the total station to one of your USB ports. Depending on your platform, the device might be identified as ``/dev/ttyUSB0`` or ``COM5``. totalopenstation-0.5.3/docs/index.rst000066400000000000000000000051301477035261600177310ustar00rootroot00000000000000.. Total Open Station documentation master file, created by sphinx-quickstart on Sat May 24 15:43:10 2008. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ================== Total Open Station ================== Total Open Station (TOPS for friends) is a free software program for downloading and processing data from total station devices. This is a task which is usually done by proprietary, dedicated and Windows™-only software, but TOPS is different by nature, because: - it is **free software** released under the GNU GPLv3 license; - it works on *any* operating system; - it is designed to support as many devices and formats as possible, all within the same program, opposed to having one program per device. Every model has its own quirks, but TOPS uses a modular structure and keeps the downloading of data logically separated from its processing, thus enabling exporting data to a variety of output formats, even at a later moment. Archiving of raw data is made easy by using plain text files. :ref:`users` are a growing number, you can be the next. See which :ref:`models` are already supported. Getting started with Total Open Station ======================================= Total Open Station |version| is now available and can be installed on all major operating systems. A development version could be build from source. Detailed instructions are available at the :ref:`installing` page. If you are having problems with getting started, try first our :ref:`faq`. If that doesn't help, get in touch with the development team through our dedicated `support channel`_. Documentation ============= User manual ----------- .. toctree:: :maxdepth: 2 installing interfaces/main input_formats/main output_formats/main models/main users glossary faq Development ----------- .. toctree:: :maxdepth: 2 contributing/main Indices and tables ------------------ * :ref:`genindex` * :ref:`Implemented Input Formats ` * :ref:`Implemented Models ` * :ref:`Implemented Output Formats ` * :ref:`modindex` * :ref:`search` Who is doing this? ================== Total Open Station is mainly developed as part of the IOSA_ project by Stefano Costa and Luca Bianconi, archaeologists. .. _IOSA: http://www.iosa.it/ Damien Gaignon, land surveyor, has joined the project in september 2015. Total Open Station is licensed under the GNU General Public License version 3 or, at your option, any later version. The application icons are copyright by Lapo Calamandrei 2008. totalopenstation-0.5.3/docs/input_formats/000077500000000000000000000000001477035261600207635ustar00rootroot00000000000000totalopenstation-0.5.3/docs/input_formats/if_carlson_rw5.rst000066400000000000000000000344161477035261600244410ustar00rootroot00000000000000.. _Carlson website: http://update.carlsonsw.com/kbase_attach/372/ .. _if_carlson_rw5: =============================================================== :mod:`carlson_rw5` -- Carlson SurvCE Raw Data File Format (RW5) =============================================================== .. moduleauthor:: Stefano Costa, Filip Kłosowski .. versionadded:: 0.4 Carlson RW5 is an exchange format used by the Carlson SurvCE software. The official documentation about the format is provided on the `Carlson website`_. RW5 is a rich format for raw data about the entire field operation of total stations and even GPS. For example:: OC,OP111,N 16556174.237,E 942130.662,EL 16.404 BK,OP111,BP108,BS0.00000,BC0.00000 LS,HI5.684,HR5.500 SS,OP111,FP108,AR0.00000,ZE0.00017,SD3.3566,--FENCE1 At the moment, a minimal subset of the specification is supported, consisting of the ``OC``, ``BP``, ``LS`` and ``SS`` record types. Carlson Record Information ========================== The format is a comma separated ASCII file containing record types, headers, recorded data and comments. The format is based on the :ref:`tds` raw data specification with the exception of angle sets. Angle sets are recorded as BD, BR, FD and FR records to allow reduction of all possible data that can be recorded by SurvCE using the “Set Collection” routine. Essentially, these records are identical to a sideshot record. With the exception of the aforementioned angle set records, if the :ref:`tds` specification is modified to provide enhanced functionality, the added or modified data will reside in comment records to avoid incompatibility with existing software. Each record is made of one line of text, with comma-separated fields of ASCII text format:: AH,DC%s,MA%s,ME%s,RA%s The first field is a two-letter code of the type of record. All the following fields are composed with 1- or 2- letter field codes (such as ``OP``, ``N`` or ``FP``) and numeric values called an (ENUM). The “Notes” field is introduced by the ``--`` code and contains a description of the record. In practice, each point has a unique number and can be referenced for various purposes from other records. *Sideshot* records (``SS``) reference the *Occupy point* record in the``OP`` field. Record types ------------ +-------------+-----------------------------------------------+-----------------------+ | Record Type | Explanation | Applicable for | +=============+===============================================+=======================+ | ``--`` * | Note | General Raw Data | +-------------+-----------------------------------------------+-----------------------+ | JB* | Job | | +-------------+-----------------------------------------------+-----------------------+ | MO* | Mode Setup | | +-------------+-----------------------------------------------+-----------------------+ | BD* | Backsight Direct | Conventional Raw Data | +-------------+-----------------------------------------------+-----------------------+ | BK* | Backsight | | +-------------+-----------------------------------------------+-----------------------+ | BR* | Backsight Reverse | | +-------------+-----------------------------------------------+-----------------------+ | FD* | Foresight Direct | | +-------------+-----------------------------------------------+-----------------------+ | FR* | Foresight Reverse | | +-------------+-----------------------------------------------+-----------------------+ | GPS | GPS Position in |br| | | | | Lat: dd.mmss |br| | | | | Lon: dd.mmss - Negative for West |br| | | | | WGS84 Ellipsoid Elevation | | +-------------+-----------------------------------------------+-----------------------+ | GS | Reduced local coordinate from GPS record |br| | | | | and localization data | | +-------------+-----------------------------------------------+-----------------------+ | LS* | Line of Sight | | +-------------+-----------------------------------------------+-----------------------+ | OC* | Occupy Point | | +-------------+-----------------------------------------------+-----------------------+ | OF | Off Center Shot | | +-------------+-----------------------------------------------+-----------------------+ | SP* | Store Point | | +-------------+-----------------------------------------------+-----------------------+ | TR/SS* | Traverse / Sideshot | | +-------------+-----------------------------------------------+-----------------------+ \* implemented type Field headers ------------- +--------------+--------------------------------+----------------+ | Field header | Explanation | Applicable for | +--------------+--------------------------------+----------------+ | AD | Azimuth Direction |br| | | | | 0: North |br| | | | | 1: South | | +--------------+--------------------------------+----------------+ | AL* | Angle-Left | | +--------------+--------------------------------+----------------+ | AR* | Angle-Right | | +--------------+--------------------------------+----------------+ | AU* | Angle Unit |br| | | | | 0: 360° sexagesimal |br| | | | | 1: 400 gon | | +--------------+--------------------------------+----------------+ | AZ* | Azimuth | | +--------------+--------------------------------+----------------+ | BC* | Back Circle | | +--------------+--------------------------------+----------------+ | BP* | Back Point | | +--------------+--------------------------------+----------------+ | BR* | Bearing |br| | | | | [N123.4500W] | | +--------------+--------------------------------+----------------+ | BS | Backsight |br| | | | | when back point is not defined | | +--------------+--------------------------------+----------------+ | CE* | Change Elevation | | +--------------+--------------------------------+----------------+ | DL* | Deflection-Left | | +--------------+--------------------------------+----------------+ | DR* | Deflection-Right | | +--------------+--------------------------------+----------------+ | DT | Local Date |br| | | | | [MM-DD-YYYY] | | +--------------+--------------------------------+----------------+ | E* | Easting |br| | | | | [E space] | | +--------------+--------------------------------+----------------+ | EC | Earth Curvature |br| | | | | 0: off |br| | | | | 1: on | | +--------------+--------------------------------+----------------+ | EL* | Elevation | | +--------------+--------------------------------+----------------+ | EO | EDM Offset | | +--------------+--------------------------------+----------------+ | FE | Foresight Elevation | | +--------------+--------------------------------+----------------+ | FP* | Foresight Point | | +--------------+--------------------------------+----------------+ | HD* | Horizontal Distance | | +--------------+--------------------------------+----------------+ | HI* | Height of Instrument | | +--------------+--------------------------------+----------------+ | HR* | Height of Rod | | +--------------+--------------------------------+----------------+ | N | Northing |br| | | | | [N space] | | +--------------+--------------------------------+----------------+ | OC | Occupy Point | | +--------------+--------------------------------+----------------+ | OP | Occupy Point | | +--------------+--------------------------------+----------------+ | PN | Point Number | | +--------------+--------------------------------+----------------+ | SD* | Slope Distance | | +--------------+--------------------------------+----------------+ | SF | Scale Factor | | +--------------+--------------------------------+----------------+ | TM | Local Time |br| | | | | [HH:MM:SS] | | +--------------+--------------------------------+----------------+ | UN* | Distance Unit |br| | | | | 0: feet |br| | | | | 1: meter |br| | | | | 2: US feet | | +--------------+--------------------------------+----------------+ | VA* | Vertical Angle | | +--------------+--------------------------------+----------------+ | ZE* | Zenith | | +--------------+--------------------------------+----------------+ | ``--`` | Note | | +--------------+--------------------------------+----------------+ \* Filed implemented Definitions =========== Backsight Record ---------------- :Record type: BK :Field headers: OP Occupy point |br| BP Back Point |br| BS Backsight |br| BC Back Circle :Sample(s): :: BK,OP1,BP2,BS315.0000,BC0.0044 Job Record ---------- :Record type: JB :Field headers: NM Job name |br| DT Date |br| TM Time :Sample(s): :: JB,NMSAMPLE,DT06-27-2003,TM14:21:53 Line of Sight Record -------------------- :Record type: LS :Field headers: HI Height of Instrument |br| HR Height of Rod :Sample(s): :: LS,HI5.000000,HR6.000000 LS,HR4.000000 Mode Setup Record ----------------- The mode setup will be recorded at the beginning of the raw data file. :Record type: MO :Field headers: AD Azimuth direction |br| UN Distance unit |br| SF Scale factor |br| EC Earth Curvature |br| EO EDM offset |br| AU Angle Unit :Sample(s): :: MO,AD0,UN0,SF1.00000000,EC1,EO0.0,AU0 Occupy Record ------------- :Record type: OC :Field headers: PN Point number |br| N Northing |br| E Easting |br| EL Elevation |br| ``--`` Note :Sample(s): :: OC,OP1,N 5000.00000,E 5000.00000,EL100.000,--CP Off Center Shot Record ---------------------- :Record type: OF :Field headers: AR Angle right |br| ZE Zenith (actual) |br| SD Slope Distance :Sample(s): :: OF,AR90.3333,ZE90.0000,SD25.550000 OF,ZE90.3333,--Vert Angle Offset Store Point Record ------------------ :Record type: SP :Field headers: PN Point Number |br| N Northing |br| E Easting |br| EL Elevation |br| ``--`` Note :Sample(s): :: SP,PN100,N 5002.0000,E 5000.0000,EL100.0000,--PP Traverse / Sideshot Record / Backsight Direct / Backsight Reverse / Foresight Direct / Foresight Reverse -------------------------------------------------------------------------------------------------------- :Record type: TR / SS / BD / BR / FD / FR :Field headers: OP Occupy Point |br| FP Foresight Point |br| (one of the following) |br| - AZ Azimuth |br| - BR Bearing |br| - AR Angle-Right |br| - AL Angle-Left |br| - DR Deflection-Right |br| - DL Deflection-Left (one of the following) |br| - ZE Zenith |br| - VA Vertical angle |br| - CE Change Elevation |br| (one of the following) |br| - SD Slope Distance |br| - HD Horizontal Distance |br| ``--`` Note :Sample(s): :: TR,OP1,FP4,AR90.3333,ZE90.3333,SD25.550000,--CP SS,OP1,FP2,AR0.0044,ZE86.0133,SD10.313750,--CP BD,OP1,FP2,AR0.0055,ZE86.0126,SD10.320000,--CP BR,OP1,FP2,AR180.0037,ZE273.5826,SD10.315000,--CP FD,OP1,FP3,AR57.1630,ZE89.4305,SD7.393000,--CP FR,OP1,FP3,AR237.1612,ZE270.1548,SD7.395000,--CP TOPS is capable of converting raw measurement data into local coordinates, by performing a sequential processing of all records in their order. Known limitations ================= Support for measurements is still incomplete, here is a list of **TODO**: * add all missing code * get comments * add the possibility to customize code .. seealso:: `Information on Carlson RW5 `_ |br| `Carlson RW5 format `_ |br| Documentation for Carlson RW5 from Carlson knowledgebase. totalopenstation-0.5.3/docs/input_formats/if_landxml.rst000066400000000000000000000310741477035261600236370ustar00rootroot00000000000000.. _LandXML website: http://www.landxml.org/ .. _if_landxml: ========================= :mod:`landxml` -- LandXML ========================= .. moduleauthor:: Damien Gaignon .. versionadded:: 0.6 LandXML is committed to providing an non-proprietary data standard (LandXML), driven by an consortium of partners for the inter-operability of data utilized within the Land Development industry. The official documentation about the format is provided on the `LandXML website`_. LandXML is a specialized XML (eXtensible Mark-up Language) data file format containing civil engineering and survey measurement data commonly used in the Land Development and Transportation Industries. For example:: 312.04999999981374 274.33400000003166 308.8430000003427 277.0350000000326 306.9670000001788 19.508999999961816 LandXML structure ================= LandXML use a schema which specifies how to formally describe the elements of the document. The schema currently used is version 1.2. Tags and attributs ------------------ +------------------+--------------------+------------------+--------------------------+ | Tag | Attribut | Parent tag | :class:`formats.Feature` | +==================+====================+==================+==========================+ | Units | | | | +------------------+--------------------+------------------+--------------------------+ | Metric | | Units | | +------------------+--------------------+------------------+--------------------------+ | | linearUnit | | dist_unit | +------------------+--------------------+------------------+--------------------------+ | | angularUnit | | angle_unit | +------------------+--------------------+------------------+--------------------------+ | Imperial* | | Units | | +------------------+--------------------+------------------+--------------------------+ | Survey | | | | +------------------+--------------------+------------------+--------------------------+ | SurveyHeader* | | Survey | | +------------------+--------------------+------------------+--------------------------+ | Equipment* | | Survey | | +------------------+--------------------+------------------+--------------------------+ | CgPoints | | Survey | "PT" in feature | +------------------+--------------------+------------------+--------------------------+ | CgPoint | | CgPoints | :class:`formats.Point` | +------------------+--------------------+------------------+--------------------------+ | | name | CgPoints | point_name | +------------------+--------------------+------------------+--------------------------+ | Feature | | CgPoint | | +------------------+--------------------+------------------+--------------------------+ | Property | | Feature | | +------------------+--------------------+------------------+--------------------------+ | | values | | attrib | +------------------+--------------------+------------------+--------------------------+ | InstrumentSetup | | Survey | "ST" in feature | +------------------+--------------------+------------------+--------------------------+ | | id | | station_id | +------------------+--------------------+------------------+--------------------------+ | | stationName | | point_name | +------------------+--------------------+------------------+--------------------------+ | | instrumentHeight | | ih | +------------------+--------------------+------------------+--------------------------+ | | orientationAzimuth | | hz0 | +------------------+--------------------+------------------+--------------------------+ | | circleAzimuth | | hz0 | +------------------+--------------------+------------------+--------------------------+ | Feature | | InstrumentSetup | | +------------------+--------------------+------------------+--------------------------+ | Property | | Feature | | +------------------+--------------------+------------------+--------------------------+ | | values | | attrib | +------------------+--------------------+------------------+--------------------------+ | ObservationGroup | | Survey | | +------------------+--------------------+------------------+--------------------------+ | | setupID | | station_id | +------------------+--------------------+------------------+--------------------------+ | Backsight | | ObservationGroup | | +------------------+--------------------+------------------+--------------------------+ | | circle | | circle | +------------------+--------------------+------------------+--------------------------+ | | setupID | | "setup" + id | +------------------+--------------------+------------------+--------------------------+ | BacksightPoint | | ObservationGroup | | +------------------+--------------------+------------------+--------------------------+ | | name | | | +------------------+--------------------+------------------+--------------------------+ | RawObservation | | ObservationGroup | "PO" in feature | +------------------+--------------------+------------------+--------------------------+ | | setupID | | station_id | +------------------+--------------------+------------------+--------------------------+ | | azimuth | | azimuth | +------------------+--------------------+------------------+--------------------------+ | | horizAngle | | angle | +------------------+--------------------+------------------+--------------------------+ | | zenithAngle | | z_angle | +------------------+--------------------+------------------+--------------------------+ | | slopeDistance | | dist | +------------------+--------------------+------------------+--------------------------+ | | horizDistance | | dist | +------------------+--------------------+------------------+--------------------------+ | | targetHeight | | th | +------------------+--------------------+------------------+--------------------------+ | TargetPoint | | RawObservation | :class:`formats.Point` | +------------------+--------------------+------------------+--------------------------+ | | desc | | point_name | +------------------+--------------------+------------------+--------------------------+ | | name | | point_name | +------------------+--------------------+------------------+--------------------------+ | Feature | | RawObservation | | +------------------+--------------------+------------------+--------------------------+ | Property | | Feature | | +------------------+--------------------+------------------+--------------------------+ | | values | | attrib | +------------------+--------------------+------------------+--------------------------+ \* Not implemented Annotations ----------- Units : All angular and direction values default to radians unless otherwise noted. Angular values, expressed in the specified Units.angleUnit are measured counter-clockwise from east=0. Horizontal directions, expressed in the specified Units.directionUnit are measured counter-clockwise from 0 degrees = north. CgPoints : A collection of COGO points. (Cg = COGO = Cordinate Geometry). InstrumentSetup : The Instrument setup location is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute. ObservationGroup : All observations to the same point in a group should be averaged together (they have consistant orientation). TargetPoint : Represents a 2D or 3D location for the target. It is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute. Known limitations ================= Support for all tags is still incomplete, here is a list of **TODO**: * add all missing tags * add the possibility to customize code .. seealso:: `Schema 1.2 for LandXML `_ |br| totalopenstation-0.5.3/docs/input_formats/if_leica_gsi.rst000066400000000000000000001024001477035261600241070ustar00rootroot00000000000000.. _if_leica_gsi: ======================= :mod:`leica_gsi` -- GSI ======================= .. moduleauthor:: Stefano Costa, Damien Gaignon .. versionadded:: 0.4 GEO Serial Interface (GSI) is a very popular data format, used by many Leica total stations (TPS) or Digital Levels (DNA). It is stored as ASCII text, with one line per measurement. In each line, there can be several *blocks* of data, with a blank space as a separation. There are two variants of GSI: - GSI8 - GSI16 but they only differ in the size of a single *block*. GSI is a very rich format, and it can hold both cartesian and polar coordinates with a detailed recording of all commands executed by the device and with explicit indication of the measurement units. GSI variants ============ GSI8 ---- GSI8 has data information recorded in 8 bit words. :: 110001+0000A110 81..00+00005387 82..00-00000992 110002+0000A111 81..00+00007586 82..00-00003031 GSI6 ---- GSI16 has data information recorded in 16 bit words. :: 110001+000000000PNC0055 21.002+0000000013384650 22.002+0000000005371500 110002+000000000PNC0056 21.002+0000000012802530 22.002+0000000005255000 110003+000000000PNC0057 21.002+0000000011222360 22.002+0000000005433800 110004+000000000PNC0058 21.002+0000000010573550 22.002+0000000005817600 110005+000000000PNC0059 21.002+0000000009983610 22.002+0000000005171400 GSI Block Information ===================== Datablock structure ------------------- Each line is a datablock composed in a sequence of data words, ending with a terminator (CR or CR/LF). There is two types of datablocks specified by the first data word : * Block of measurement (beginning usually with 11) * Block of code (beginning usually with 41) TPS --- Data word structure ___________________ Every word starts with two characters specifying the data type within the word. * Pos.1-3: Word Index (WI) * Pos.4-6: Information related to data * Pos.7: Sign * Pos.8-15/8-23: GSI8/16 data * Pos.16/24: Blank (=separating character) +----------+----------------------------------------------+----------------------+ | Position | Explanation | Applicable for | +==========+==============================================+======================+ | 1-3 | Word Index | All words | +----------+----------------------------------------------+----------------------+ | 4 | AUTOMATIC INDEX INFORMATION |br| | All words containing | | | 0: Automatic index OFF |br| | angle information | | | 1: Automatic index OPERATING |br| | | | | 3: Automatic index OPERATING | | +----------+----------------------------------------------+----------------------+ | 5 | INPUT MODE |br| | Measured data | | | 0: Original measured values transferred | | | | from the instrument |br| | | | | 1: Manual input from keyboard |br| | | | | 2: Measured value, Hz-Correction ON |br| | | | | 3: Measured value, Hz-Correction OFF |br| | | | | 4: Result of special function | | +----------+----------------------------------------------+----------------------+ | 6 | UNITS |br| | Measured data | | | 0: Meter (last digit: 1mm) |br| | | | | 1: Feet (last digit: 1/1000ft) |br| | | | | 2: 400 gon |br| | | | | 3: 360° decimal |br| | | | | 4: 360° sexagesimal |br| | | | | 5: 6400 mil |br| | | | | 6: Meter (last digit: 1/10mm) |br| | | | | 7: Feet (last digit: 1/10‘000ft) |br| | | | | 8: Meter (last digit: 1/100mm) | | +----------+----------------------------------------------+----------------------+ | 7 | SIGN |br| | Measured data | | | +: Positive value |br| | | | | -: Negative value |br| | | +----------+----------------------------------------------+----------------------+ | 8-15 | DATA |br| | Measured data | | (8-23) | Data includes a sequence of 8(16) | | | | numerical or alphanumerical characters. |br| | | | | Note that certain data words are allowed | | | | to carry more than 1 value (e.g. PPM/MM). | | | | Those data are automatically transferred | | | | with a sign before each single value. | | +----------+----------------------------------------------+----------------------+ | 16 | SEPARATING CHARACTER |br| | All words | | (24) | _: Blank | | +----------+----------------------------------------------+----------------------+ Word Index __________ +-----+-----------------------------------+----------------------------------+---+---+---+ | WI | FUNCTION | Access/Example | 1 | 2 | 3 | +=====+===================================+==================================+===+===+===+ | 11* | Pointnumber | 11… .+00000H66 |br| | x | x | x | | | | PtNo=“H66“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 12 | Serial number | 12....+00640054 |br| | | x | x | | | | S.No. “640054” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 13 | Instrument type | 13....+00TCR305 |br| | | x | x | | | | Instr. “TCR305” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 16 | Station Pointnumbe | 16....+00000100” |br| | | x | | | | | St.No. “100” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 17 | Date |br| | 17....+08022000 |br| | | x | | | | [DD.MM.YYYY] | “Feb. 8th 2000” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 18 | Year Second |br| | 18....+01130000 | | x | | | | [YY.SS.mSmSmS] | | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 19 | Time |br| | 19....+02081029 |br| | | x | x | | | [MM.DD.hh.mm] | “Feb. 8th ; 10:29” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 21* | Horizontal Angle |br| | 21.102+17920860 |br| | x | x | x | | | Hz | Hz „179.086“ gon | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 22* | Vertical Angle |br| | 22.102+07567500 |br| | x | x | x | | | V | V: „75.675“ gon | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 25* | Horizontal circle difference |br| | | ? | ? | ? | | | Hz0 - Hz | | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 31* | Slope distance | 31..00+00003387 |br| | x | x | x | | | | Sdist: „3.387“ m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 32* | Horizontal distance | 32..00+00003198 |br| | x | x | x | | | | Hdist: „3.198“ m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 33* | Height difference | 33..00+00001119 |br| | x | x | x | | | | Hdiff: „1.119“ m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 41* | Code-Block ID | 41....+00000013 |br| | | x | x | | | | Code: „13“ m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 42* | Information 1 | 42....+000TREES |br| | | x | x | | | | Info1: „TREES“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 43* | Information 2 | 43....+000004.5 |br| | | x | x | | | | Info2: „4.5“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 44* | Information 3 | 44....+00CAT.02 |br| | | x | x | | | | Info3: „CAT.02“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 45* | Information 4 | 45....+000000NN |br| | | x | x | | | | Info4: „NN“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 46* | Information 5 | 46....+000000NN |br| | | x | x | | | | Info5: „NN“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 47* | Information 6 | 47....+000000NN |br| | | x | x | | | | Info6: „NN“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 48* | Information 7 | 48....+000000NN |br| | | x | x | | | | Info7: „NN“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 49* | Information 8 | 49....+000000NN |br| | | x | x | | | | Info8: „NN“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 51* | PPM and Prism constant | 51… .+0220+002 |br| | x | | x | | | | PPM „220“ and Prism const „2“ mm | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 52 | Measurement number | | ? | ? | ? | | | Standard deviation | | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 53 | Signal power | | ? | ? | ? | | | | | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 58* | Prism constant | 58..16+00000020 |br| | x | x | x | | | | Prism „2“ mm | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 59* | PPM | 59..16+02200000 |br| | x | x | x | | | | PPM „220“ | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 71* | Remark1 |br| | 71....+0000REM1 |br| | | | x | | | (or Attribute 1) | “REM1” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 72* | Remark2 |br| | 72....+0000REM2 |br| | | | x | | | (or Attribute 2) | “REM2” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 73* | Remark3 |br| | 73....+0000REM3 |br| | | | x | | | (or Attribute 3) | “REM13” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 74* | Remark4 |br| | 74....+0000REM4 |br| | | | x | | | (or Attribute 4) | “REM4” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 75* | Remark5 |br| | 75....+0000REM5 |br| | | | x | | | (or Attribute 5) | “REM5” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 76* | Remark6 |br| | 76....+0000REM6 |br| | | | x | | | (or Attribute 6) | “REM6” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 77* | Remark7 |br| | 77....+0000REM7 | | | x | | | (or Attribute 7) | “REM7” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 78* | Remark8 |br| | 78....+0000REM8 |br| | | | x | | | (or Attribute 8) | “REM8” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 79* | Remark9 |br| | 79....+0000REM9 |br| | | | x | | | (or Attribute 9) | “REM9” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 81* | Target Easting (E) | 81..00+01999507 |br| | x | x | x | | | | E: “1999.507”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 82* | Target Northing (N) | 82..00-00213159 |br| | x | x | x | | | | N: “-2139.159”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 83* | Target Elevation (H) | 83..00+00032881 |br| | x | x | x | | | | H: “32.881”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 84* | Station Easting (E0) | 84..11+00393700 |br| | x | x | x | | | | E: “393.700”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 85* | Station Northing (N0) | 85..11+06561220 |br| | x | x | x | | | | N: “6561.220”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 86* | Station Height (H0) | 86..11+00065618 |br| | x | x | x | | | | H: “65.618”m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 87* | Reflector height (hr) | 87..11+00001700 |br| | x | x | x | | | | hr: “1.700” m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 88* | Instrument height (hi) | 88..11+00001550 |br| | x | x | x | | | | hi: “1.550” m | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 531 | Atmos. correction: |br| | 531.16+10130000 |br| | | x | | | | pressure | “1013” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 538 | Coefficient of refraction | 538.16+00001300 |br| | | x | | | | | 1.300” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 560 | Time: |br| | 560..6+00105018 |br| | | x | | | | [hh.mm.ss] | “10:50:18” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 561 | Date: |br| | 561..6+00020800 |br| | | x | | | | [mm.dd] | “2.8.2000” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 562 | Year: |br| | 562...+00002000 |br| | | x | | | | [yyyy] | year “2000” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 590 | SW-Version: |br| | 590..6+00021000 |br| | | x | | | | Application | “V2.10” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 591 | SW-Version: |br| | 591..6+00020000 |br| | | x | | | | Operating system | “V2.00” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 592 | SW-Version: |br| | 592..6+00010000 |br| | | x | | | | OS interface | “V1.00” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 593 | SW-Version: |br| | 593..6+00022000 |br| | | x | | | | GEOCOM | “V2.20” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 594 | SW-Version: |br| | 594..6+00010000 |br| | | x | | | | Gsi communication | “V1.00” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 595 | SW-Version: |br| | 595..6+00011100 |br| | | x | | | | Edm Device | “V1.11” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 913 | Job | 913...+BLDG.A12 |br| | | x | | | | | “BLDG.A12” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ | 914 | Operator | 914...+0MM-3519 |br| | | x | | | | | “MM-3519” | | | | +-----+-----------------------------------+----------------------------------+---+---+---+ \* implemented WI 1. TPS100 Series: TC403L, TC600, TC800, |br| TC605/L, TC805/L TC905/L 2. TPS300/700 Series: TC302, TC303, TC305, TC307, |br| TCR302, TCR303, TCR305, TCR307, |br| TC702, TC703, TC705, |br| TCR702, TCR703, TCR705, |br| TC(R)702 auto, TC(R)703 auto, TC(R)705 auto 3. TPS1000/1100 Series: TC1100/L, TC1500/L, TC1700/L, TC1800/L, |br| TCM1100/L, TCM1800/L, |br| TCA1100/L, TCA1800/L· TC1101, TC1102, TC1103, TC1105, |br| TCR1101, TCR1102, TCR1103, TCR1105, |br| TCM1101, TCM1102, TCM1103, TCM1105, |br| TCRM1101, TCRM1102, TCRM1103, TCRM1105, |br| TCA1101, TCA1102, TCA1103, TCA1105, |br| TCRA1101, TCRA1102, TCRA1103, TCRA1105 DNA --- Only for DNA03/DNA10 Data word structure ___________________ Every word starts with two characters specifying the data type within the word. * Pos.1-3: Word Index (WI) * Pos.4-6: Information related to data * Pos.7: Sign * Pos.8-15/8-23: GSI8/16 data * Pos.16/24: Blank (=separating character) +----------+--------------------------------------------------------------------+----------------------+ | Position | Explanation | Applicable for | +==========+====================================================================+======================+ | 1-3 | Word Index | All words | +----------+--------------------------------------------------------------------+----------------------+ | 4 | Empty, marked as dot (.) | All words containing | +----------+--------------------------------------------------------------------+----------------------+ | 5 | Information about the measurement and | Measured data | | | earth-curvature correction. |br| | | | | 0 = measured; **without** earth-curvature correction. |br| | | | | 1 = entered manually; **without** earth-curvature correction. |br| | | | | 2 = measured; **with** earth-curvature correction. |br| | | | | 5 = entered manually; **with** earth-curvature correction. | | +----------+--------------------------------------------------------------------+----------------------+ | 6 | UNITS |br| | Measured data | | | 0: Meter (last digit: 1mm) |br| | | | | 1: Feet (last digit: 1/1000ft) |br| | | | | 6: Meter (last digit: 1/10mm) |br| | | | | 7: Feet (last digit: 1/10‘000ft) |br| | | | | 8: Meter (last digit: 1/100mm) | | +----------+--------------------------------------------------------------------+----------------------+ | 7-15 | DATA |br| | Measured data | | (7-23) | Data includes a sequence of 8(16) numerical or | | | | alphanumerical characters. | | +----------+--------------------------------------------------------------------+----------------------+ | 16 | SEPARATING CHARACTER |br| | All words | | (24) | _: Blank | | +----------+--------------------------------------------------------------------+----------------------+ Word Index __________ +-----+---------------------------------------------------------+ | WI | FUNCTION | +=====+=========================================================+ | 11 | PointID | +-----+---------------------------------------------------------+ | 12 | Serial number | +-----+---------------------------------------------------------+ | 13 | Instrument type | +-----+---------------------------------------------------------+ | 17 | Date Year | +-----+---------------------------------------------------------+ | 19 | Day time | +-----+---------------------------------------------------------+ | 32 | Horizontal distance | +-----+---------------------------------------------------------+ | 35 | Setting-out difference | +-----+---------------------------------------------------------+ | 41 | Code-Block ID | +-----+---------------------------------------------------------+ | 42 | Information 1 | +-----+---------------------------------------------------------+ | 43 | Information 2 | +-----+---------------------------------------------------------+ | 44 | Information 3 | +-----+---------------------------------------------------------+ | 45 | Information 4 | +-----+---------------------------------------------------------+ | 46 | Information 5 | +-----+---------------------------------------------------------+ | 47 | Information 6 | +-----+---------------------------------------------------------+ | 48 | Information 7 | +-----+---------------------------------------------------------+ | 49 | Information 8 | +-----+---------------------------------------------------------+ | 71 | Remark | +-----+---------------------------------------------------------+ | 83 | Ground height (starting point height or measured height | +-----+---------------------------------------------------------+ | 95 | Instrument temperature [°C] | +-----+---------------------------------------------------------+ | 330 | Staff reading in "Meas Only" | +-----+---------------------------------------------------------+ | 331 | Staff reading, backsight or B1 | +-----+---------------------------------------------------------+ | 332 | Staff reading, foresight or F1 | +-----+---------------------------------------------------------+ | 333 | Staff reading, intermediate sight | +-----+---------------------------------------------------------+ | 334 | Staff reading, setting-out sight | +-----+---------------------------------------------------------+ | 335 | Staff reading, B2 | +-----+---------------------------------------------------------+ | 336 | Staff reading, F2 | +-----+---------------------------------------------------------+ | 374 | Setting-out difference of height measurements | +-----+---------------------------------------------------------+ | 390 | Count of repeated measurements | +-----+---------------------------------------------------------+ | 391 | Mean mode: Standard deviation of the single measurement | +-----+---------------------------------------------------------+ | 392 | Mean mode: Spread of measurements | +-----+---------------------------------------------------------+ | 560 | Time: [hh.mm.ss] | +-----+---------------------------------------------------------+ | 561 | Date: [mm.dd] | +-----+---------------------------------------------------------+ | 562 | Year: [yyyy] | +-----+---------------------------------------------------------+ | 571 | Station difference | +-----+---------------------------------------------------------+ | 572 | Cumulative station difference | +-----+---------------------------------------------------------+ | 573 | Distance balance | +-----+---------------------------------------------------------+ | 574 | Total distance (=line length) | +-----+---------------------------------------------------------+ | 599 | SoftWare Version | +-----+---------------------------------------------------------+ Units ===== The unit in position 6 of the word is used as following : +----------------------------------+-------------------+-----------+ | Unit | Number of decimal | Exemple | +==================================+===================+===========+ | 0: Meter (last digit: 1mm) | 3 | 12345.678 | +----------------------------------+-------------------+-----------+ | 1: Feet (last digit: 1/1000ft) | 3 | 12345.678 | +----------------------------------+-------------------+-----------+ | 2: 400 gon | 5 | 123.45678 | +----------------------------------+-------------------+-----------+ | 3: 360° decimal | 5 | 123.45678 | +----------------------------------+-------------------+-----------+ | 4: 360° sexagesimal | 5 | 123.45678 | +----------------------------------+-------------------+-----------+ | 5: 6400 mil | 4 | 1234.5678 | +----------------------------------+-------------------+-----------+ | 6: Meter (last digit: 1/10mm) | 4 | 1234.5678 | +----------------------------------+-------------------+-----------+ | 7: Feet (last digit: 1/10‘000ft) | 4 | 1234.5678 | +----------------------------------+-------------------+-----------+ | 8: Meter (last digit: 1/100mm) | 5 | 123.45678 | +----------------------------------+-------------------+-----------+ Default patterns ================ Most of the time, a GSI file is composed of three type of lines: * a station point with WI 11 [, 25], 84, 85, 86 [, 87], 88 * a direct point with WI 11, 81, 82, 83 * a measurement with WI 11, 21, 22, 31 or 32 [, 51], 87 [, 88] [, 81, 82, 83] * a comment with WI 41, [42, 43, 44, 45, 46, 47, 48, 49] WI in [] are optional. Known limitations ================= Support for raw measurements is still incomplete, here is a list of **TODO**: * get coordinates order (NEZ or ENZ) * add missing code for TPS (not with an asterisk on the WI list) * add DNA support * add an option to link comment(s) to either the previous or the next line * add an option to link attribut(s) with his point * add the possibility to customize code * add specific raise functions Acknowledgements ================ Support for this format was added thanks to Anna Hodgkinson and Hannah Petten at the University of Liverpool. Some details of the implementation are based on the SurveyTools QGIS plugin developed by Stefan Ziegler. .. seealso:: `GSI Online for Leica TPS `_ Documentation for GSI from Leica. totalopenstation-0.5.3/docs/input_formats/if_leica_tcr_1205.rst000066400000000000000000000007631477035261600245750ustar00rootroot00000000000000.. _if_leica_tcr_1205: ======================================= :mod:`leica_tcr_1205` -- Leica TCR 1205 ======================================= .. moduleauthor:: Stefano Costa, Stefano Costa This format is used by the Leica TCR 1205 (and other similar devices), and contains both polar and cartesian coordinates. At the moment, only cartesian coordinates are used to obtain exported data. Acknowledgements ================ Support for this format was added thanks to Joseph Reeves, OA Digital. totalopenstation-0.5.3/docs/input_formats/if_nikon_raw_v200.rst000066400000000000000000000105111477035261600247270ustar00rootroot00000000000000.. _if_nikon_raw: =============================================== :mod:`nikon_raw_v200` -- Nikon RAW format V2.00 =============================================== .. moduleauthor:: Stefano Costa .. versionadded:: 0.3.3 This format contains polar data. It is the first polar format supported by Total Open Station. Nikon RAW Record Information ============================ Data are basically comma-separated values, but each row can have a different format and number of fields. Recorded points are in rows that start with the ``SS`` string, while fixed base points start with the ``ST`` string. Definitions =========== Coordinate records ------------------ +------+---+----+---+---------+---+----------+---+---------+---+-----------+---+------+ | type | , | pt | , | (pt id) | , | northing | , | easting | , | elevation | , | code | +------+---+----+---+---------+---+----------+---+---------+---+-----------+---+------+ :type: One of the following codes |br| UP Uploaded point |br| MP Manually input point |br| CC Calculated coordinate |br| RE Resection point :pt: Point number :(pt id): (Point ID) :northing: Northing of the coordinate :easting: Easting of the coordinate :elevation: Elevation of the coordinate :code: Feature code Station records --------------- +----+---+-------+---+---------+---+------+---+---------+---+----+---+--------+---+------+ | ST | , | stnpt | , | (stnid) | , | bspt | , | (bs id) | , | hi | , | bsazim | , | bsha | +----+---+-------+---+---------+---+------+---+---------+---+----+---+--------+---+------+ :ST: Station record identifier (fixed text) :stnpt: Station point number :(stn id): (Station ID) :bspt: Backsight point number :(bs id): (Backsight ID) :hi: Height of instrument :bsazim: Backsight azimuth :bsha: Backsight horizontal angle Control point records --------------------- +----+---+----+---+---------+---+----+---+----+---+----+---+----+---+------+---+------+ | CP | , | pt | , | (pt id) | , | ht | , | sd | , | ha | , | va | , | time | , | code | +----+---+----+---+---------+---+----+---+----+---+----+---+----+---+------+---+------+ :CP: Control point record identifier (fixed text) :pt: Point number :(pt id): (Point ID) :ht: Height of target :sd: Slope distance :ha: Horizontal angle :va: Vertical angle :time: 24-hour time stamp :code: Feature code Sideshot records ---------------- +----+---+----+---+----+---+----+---+----+---+----+---+------+---+------+ | SS | , | pt | , | ht | , | sd | , | ha | , | va | , | time | , | code | +----+---+----+---+----+---+----+---+----+---+----+---+------+---+------+ :SS: Sideshot record identifier (fixed text) :pt: Point number :ht: Height of target :sd: Slope distance :ha: Horizontal angle :va: Vertical angle :time: 24-hour time stamp :code: Feature code Stakeout records ---------------- +----+---+----+---+--------+---+----+---+----+---+----+---+----+---+------+---+ | SO | , | pt | , | (sopt) | , | ht | , | sd | , | ha | , | va | , | time | , | +----+---+----+---+--------+---+----+---+----+---+----+---+----+---+------+---+ :SO: Stakeout record identifier (fixed text) :pt: Recorded point number :(sopt): (Original number of point staked) :ht: Height of target :sd: Slope distance :ha: Horizontal angle :va: Vertical angle :time: 24-hour time stamp F1 records ---------- +------+---+----+---+----+---+----+---+----+---+----+---+------+ | face | , | pt | , | ht | , | sd | , | ha | , | va | , | time | +------+---+----+---+----+---+----+---+----+---+----+---+------+ :face: One of the following |br| F1 Shot taken using Face-1 (fixed text) |br| Shot taken using Face-1 for Station setup (fixed text) |br| :pt: Point number :ht: Height of target :sd: Slope distance :ha: Horizontal angle :va: Vertical angle :time: 24-hour time stamp Comment/note records -------------------- +----+---+------+ | CO | , | text | +----+---+------+ :CO: Comment record identifier (fixed text) :text: Comment text Acknowledgements ================ Support for this format was added thanks to Cynthia Mascione, Università di Siena. .. seealso:: `Information on Total Station Nivo Series - Nivo3.M and Nivo5.M manual `_ |br| `Information on Total Station DTM-322 manual `_ |br| Documentation for Nikon RAW v2.00 from unofficial sources totalopenstation-0.5.3/docs/input_formats/if_sokkia_sdr33.rst000066400000000000000000000015411477035261600244730ustar00rootroot00000000000000==================================== :mod:`sokkia_sdr33` -- Sokkia SDR 33 ==================================== .. moduleauthor:: Stefano Costa .. versionadded:: 0.4 Sokkia SDR33 is a format used by older models such as Sokkia SET 5F. The format supports is based on fixed-position fields, with one record per line. SDR33 supports both polar (“raw”) measurements and cartesian coordinates (Northing, Easting, Elevation). The first four characters of a line are useful to separate the various type of measurements: - prism height is marked by code ``03NM`` - polar measurements are marked by the ``09F1`` code - cartesian measurements are marked by ``08TP`` - base stations are marked by ``02TP``, because their coordinates are entered by hand as cartesian coordinates It is uncommon for polar and cartesian measurements to be found in the same dataset. totalopenstation-0.5.3/docs/input_formats/if_trimble_are.rst000066400000000000000000000003261477035261600244610ustar00rootroot00000000000000.. _if_trimble_are: ========================================= :mod:`trimble_are` -- Trimble AREA format ========================================= .. moduleauthor:: Stefano Costa, Luca Bianconi, Alessandro Bezzi totalopenstation-0.5.3/docs/input_formats/if_zeiss_r5.rst000066400000000000000000000023431477035261600237400ustar00rootroot00000000000000================================== :mod:`zeiss_r5` -- Zeiss R5 format ================================== .. moduleauthor:: Stefano Costa .. versionadded:: 0.4 The R5 format is an evolution of the older R4 format and is similar to the :py:mod:`zeiss_rec_500` REC 500 format. It can be used for both processed Cartesian data (Northing, Easting, Elevation) or for raw polar measurements, but currently we don't have any sample data for the raw variant. In each line of the data file, fields are separated by the ``|`` character:: For R5|Adr 0008|KR NTR1100|X 21.259 m |Y 59.620 m |Z 11.256 m | The first field is always ``For R5`` and it indicates the format. Then the ``Adr`` field is a sequential id of the line, but not necessarily a surveyed point. The third field is the most important, as it specifies different types of records with the first two characters, like ``TR`` or ``KR``. Then a space character separates the next 7 characters, that are actually two separate pieces of information: the “text code” in the first 3 characters (that can be used to identify various points from the same feature or structure) and the point number in the next four characters. The next fields are the X, Y and Z values. totalopenstation-0.5.3/docs/input_formats/if_zeiss_rec_500.rst000066400000000000000000000047061477035261600245540ustar00rootroot00000000000000.. _if_zeiss_rec_500: ===================================== :mod:`zeiss_rec_500` -- Zeiss REC 500 ===================================== .. moduleauthor:: Stefano Costa This was the first format supported by Total Open Station. For historical reasons, its documentation is far more extended than those of other formats. The step by step procedure is useful for anyone who wants to hack on TOPS itself. Step-by-step download procedure ------------------------------- At the time I was doing the first tests, I found it useful to collect all steps. The program goes through them automatically:: >>> import serial >>> ser = serial.Serial('/dev/ttyUSB0', \ baudrate=9600, bytesize=serial.SEVENBITS, timeout=0, \ parity=serial.PARITY_NONE, rtscts=1) >>> ser.open() At this point, you have to start the download from the device menu. When this operation has finished, it's good practice to control if you have actually received any data:: >>> ser.inWaiting() 648L A non-zero result means that something has been downloaded. Good enough. This number can be saved to a variable and passed as parameter to the ``read()`` command:: >>> n = ser.inWaiting() >>> result = ser.read(n) The ``result`` object is a string that contains our data:: >>> print(result) 0001 OR.COOR 0002 0S X 0.000 Y 0.000 Z 0.000 0003 Om 397.0370 0004 POLAR 0005 INPUT th 1.500 ih 0.000 0006 INPUT th 0.000 ih 0.000 Z 0.000 0007 1 X -0.472 Y 1.576 Z 0.004 END So far, we can say that the downloaded file contains this information: * ``OR.COOR``: but I don't know if this line can take other values too * **origin point** defined by the ``OS`` string followed by its ``X``, ``Y``, ``Z`` coordinates * **orientation angle** ``Om``: are these gradiants? * ``POLAR``: but I don't know if this line can take other values too * ``INPUT``: are there always two ``INPUT`` lines? * ``th`` * ``ih`` * ``Z`` * points, expressed as ``N`` (starting from 1), ``X``, ``Y``, ``Z`` * ``END``: after this line no more data totalopenstation-0.5.3/docs/input_formats/main.rst000066400000000000000000000035601477035261600224450ustar00rootroot00000000000000.. _input_formats: ============= Input formats ============= Total Open Station supports a number of input data formats, which are implemented separately from the device handling machinery (i.e. downloading data from your total station, see :ref:`models`). This is because one device can output more than one format, and at the same time the same format can be used by more than one device (particularly this is the case for different models by the same manufacturer). Generally speaking, data formats can be classified into two large groups: 1. “raw” field data with polar coordinates 2. processed data, with XY(Z) cartesian coordinates The latter are far more easy to process, because they don't require any computing of measurements. XYZ formats =========== These formats were the first kind of survey data format supported by Total Open Station. Cartesian coordinates just need to be extracted from ASCII data. .. _implemented_if: Implemented formats =================== Formats known are : .. toctree:: :maxdepth: 1 :glob: if_* Other formats ============= The following is an other known format but not implemented. .. toctree:: :maxdepth: 1 :glob: tds Unknown formats =============== Unimplemented :term:`formats ` can be added to Total Open Station. The best way to have your format included in the next version of Total Open Station is to fill a support request in the `bug tracker`_ and attach some sample data dumps obtained following :ref:`getting_sample_data`. If you can write Python code, you can also write a module by yourself using an existing one as a guide and the :ref:`new` directive. If you write a module, we will be happy to receive it and include it in the Total Open Station source tree. .. seealso:: The :ref:`contributing` page to find out how to join the project and participate actively to the development. totalopenstation-0.5.3/docs/input_formats/tds.rst000066400000000000000000001656621477035261600223270ustar00rootroot00000000000000.. _tds: ================== Tripod Data System ================== TDS (Tripod Data Systems) is a technique designed to use your handheld devices as rough as you can to make it compatible with intense external environment. They also provide the versatility in the range of friendly software for the mobile computing and for various industries as well. This format is designed to work with these devices and espacially with Survey Pro software. The format is a comma separated ASCII file containing record types, headers, recorded data and comments. Each record is made of one line of text, with comma-separated fields of ASCII text format:: AH,DC%s,MA%s,ME%s,RA%s This format is the base of other formats : - :ref:`if_carlson_rw5` Record type ----------- General Raw Data ________________ +---------------+------------------------------------------+ | Record Type | Explanation | +===============+==========================================+ | -- | Note | +---------------+------------------------------------------+ | JB | Job | +---------------+------------------------------------------+ | MO | Mode Setup | +---------------+------------------------------------------+ Conventional Raw Data _____________________ +---------------+------------------------------------------+ | Record Type | Explanation | +===============+==========================================+ | AP | Adjusted point | +---------------+------------------------------------------+ | AT | Attributes | +---------------+------------------------------------------+ | BK | Backsight | +---------------+------------------------------------------+ | CF | Cut Sheet | +---------------+------------------------------------------+ | DE | Design point / location | +---------------+------------------------------------------+ | DL | Define a Location | +---------------+------------------------------------------+ | DP | Deleted point | +---------------+------------------------------------------+ | FC | Feature Code | +---------------+------------------------------------------+ | LS | Line of Sight | +---------------+------------------------------------------+ | MD | Multiple Distances | +---------------+------------------------------------------+ | OC | Occupy Point | +---------------+------------------------------------------+ | OE | Offset delta | +---------------+------------------------------------------+ | OF | Off Center Shot | +---------------+------------------------------------------+ | RB | Repeat Backsight | +---------------+------------------------------------------+ | RD | Repeat Directional | +---------------+------------------------------------------+ | RE | Remote Elevation | +---------------+------------------------------------------+ | RF | Repeat Foresight | +---------------+------------------------------------------+ | RS | Resection | +---------------+------------------------------------------+ | SD | Deltas | +---------------+------------------------------------------+ | SK | Stake Out | +---------------+------------------------------------------+ | SL | Slope Staking | +---------------+------------------------------------------+ | SP | Store Point | +---------------+------------------------------------------+ | SR | Slope Staking Reference Offset | +---------------+------------------------------------------+ | SU | Sun Shot | +---------------+------------------------------------------+ | TR/SS/OB | Traverse / Sideshot / Observation | +---------------+------------------------------------------+ GPS Raw Data ____________ +---------------+------------------------------------------+ | Record Type | Explanation | +===============+==========================================+ | AH | GPS Antenna Height | +---------------+------------------------------------------+ | BL | GPS Base Line | +---------------+------------------------------------------+ | BP | Set Base Receiver Position | +---------------+------------------------------------------+ | CG | COGO settings | +---------------+------------------------------------------+ | CS | Coordinate System Identity | +---------------+------------------------------------------+ | CT | Calibration Point | +---------------+------------------------------------------+ | CV | RMS Covariance of GPS Base Line | +---------------+------------------------------------------+ | DG | Datum Grid | +---------------+------------------------------------------+ | DT | Datum | +---------------+------------------------------------------+ | EE | GPS Edit Point | +---------------+------------------------------------------+ | EP | Geodetic position | +---------------+------------------------------------------+ | EQ | Equipment | +---------------+------------------------------------------+ | ES | Ellipsoid | +---------------+------------------------------------------+ | GK | GPS stakeout | +---------------+------------------------------------------+ | GO | GPS Offset Shot | +---------------+------------------------------------------+ | GP | GPS Point | +---------------+------------------------------------------+ | GR | GPS adjusted point | +---------------+------------------------------------------+ | GS | GPS Store Point | +---------------+------------------------------------------+ | HA | Horizontal Calibration (Adjust) | +---------------+------------------------------------------+ | PE | Extended Projection | +---------------+------------------------------------------+ | PJ | Projection | +---------------+------------------------------------------+ | RP | Local coordinates of calibration point | +---------------+------------------------------------------+ | RX | Receiver Setup | +---------------+------------------------------------------+ | ST | Local site settings | +---------------+------------------------------------------+ | VA | Vertical Calibration (Adjust) | +---------------+------------------------------------------+ Legacy Raw Data _______________ +---------------+------------------------------------------+ | Record Type | Explanation | +===============+==========================================+ | AA | Accumulating Angle-right |br| | | | not used in SPCE | +---------------+------------------------------------------+ | BB | Bench level, backsight |br| | | | not used in SPCE | +---------------+------------------------------------------+ | BG | Base Point Geoid Model Elevation |br| | | | no longer supported in SPCE 3.5 |br| | | | replaced by VA | +---------------+------------------------------------------+ | BS | Bench level, side shots |br| | | | not used in SPCE | +---------------+------------------------------------------+ | BT | Bench level, traverse |br| | | | not used in SPCE | +---------------+------------------------------------------+ | HC | Horizontal Control Point |br| | | | not supported in SPro 3.5 |br| | | | replaced with CT | +---------------+------------------------------------------+ | LE | Vertical Ellipsoid Height Setup | +---------------+------------------------------------------+ | LG | Vertical Geoid Model Setup |br| | | | no longer supported in SPCE3.5 | +---------------+------------------------------------------+ | LM | Horizontal Mapping Plane Setup |br| | | | no longer supported in SPCE3.5 | +---------------+------------------------------------------+ | LH | Local transforming coefficients |br| | | | for horizontal |br| | | | no longer supported in SPCE3.5 |br| | | | replaced by Horizontal adjustment HA | +---------------+------------------------------------------+ | LV | Local transforming coefficients |br| | | | for vertical |br| | | | no longer supported in SPCE3.5 |br| | | | replaced by Vertical adjustment VA | +---------------+------------------------------------------+ | VC | Vertical Control point |br| | | | not supported in SPro 3.5 |br| | | | replaced with C | +---------------+------------------------------------------+ Field headers ------------- General and Conventional field list ___________________________________ +--------------+-----------------------------------------+ | Field header | Explanation | +==============+=========================================+ | ``--`` | Note | +--------------+-----------------------------------------+ | AD | Azimuth Direction | +--------------+-----------------------------------------+ | AL | Angle Left | +--------------+-----------------------------------------+ | AR | Angle Right | +--------------+-----------------------------------------+ | AS | Ahead on station | +--------------+-----------------------------------------+ | AU | Angle Unit | +--------------+-----------------------------------------+ | AZ | Azimuth | +--------------+-----------------------------------------+ | BC | Back Circle | +--------------+-----------------------------------------+ | BD | Backsight direct | +--------------+-----------------------------------------+ | BP | Back point | +--------------+-----------------------------------------+ | BS | Backsight | +--------------+-----------------------------------------+ | BV | Backsight reverse | +--------------+-----------------------------------------+ | CE | Change elevation | +--------------+-----------------------------------------+ | CF | Slope used | +--------------+-----------------------------------------+ | CR | Circular Reading | +--------------+-----------------------------------------+ | DE | Declination | +--------------+-----------------------------------------+ | DS | Design Slope | +--------------+-----------------------------------------+ | DT | Date (JB Record) | +--------------+-----------------------------------------+ | DT | Date (SU Record) |br| | | | [MMDDYYYY] | +--------------+-----------------------------------------+ | E | Adj. Easting | +--------------+-----------------------------------------+ | EC | Earth Curvature | +--------------+-----------------------------------------+ | ED | Delta easting | +--------------+-----------------------------------------+ | EG | Sun Position | +--------------+-----------------------------------------+ | EL | Elevation or Adj. Elevation | +--------------+-----------------------------------------+ | EO | EDM offset | +--------------+-----------------------------------------+ | FD | Foresight direct | +--------------+-----------------------------------------+ | FE | Foresight elevation | +--------------+-----------------------------------------+ | FN | Feature code name | +--------------+-----------------------------------------+ | FP | Foresight point | +--------------+-----------------------------------------+ | FV | Foresight reverse | +--------------+-----------------------------------------+ | GD | Grade | +--------------+-----------------------------------------+ | GH | Greenwich hour angle | +--------------+-----------------------------------------+ | HC | Horizontal dist. to center line | +--------------+-----------------------------------------+ | HD | Horizontal distance | +--------------+-----------------------------------------+ | HD | Horizontal or relative horizontal dist. | +--------------+-----------------------------------------+ | HH | Horizontal distance to hinge point | +--------------+-----------------------------------------+ | HI | Height of Instrument | +--------------+-----------------------------------------+ | HR | Height of Rod | +--------------+-----------------------------------------+ | LA | Latitude | +--------------+-----------------------------------------+ | LD | Delta elevation | +--------------+-----------------------------------------+ | LO | Longitude | +--------------+-----------------------------------------+ | LR | Left/Right Offset | +--------------+-----------------------------------------+ | N | Adj. Northing | +--------------+-----------------------------------------+ | ND | Delta northing | +--------------+-----------------------------------------+ | NM | Job Name | +--------------+-----------------------------------------+ | OB | Observed slope | +--------------+-----------------------------------------+ | OD | Offset Direction | +--------------+-----------------------------------------+ | OE | Offset Delta | +--------------+-----------------------------------------+ | OL | Offset length | +--------------+-----------------------------------------+ | OP | Occupy point | +--------------+-----------------------------------------+ | PN | Point name | +--------------+-----------------------------------------+ | SD | Slope Distance | +--------------+-----------------------------------------+ | SF | Scale Factor | +--------------+-----------------------------------------+ | SM | Semi-diameter of Sun |br| | | | in DMS | +--------------+-----------------------------------------+ | ST | Station | +--------------+-----------------------------------------+ | TM | Time (JB – Record) |br| | | | [HH:MM:SS] | +--------------+-----------------------------------------+ | TM | Time (EP – Record) |br| | | | [HHMMSS] | +--------------+-----------------------------------------+ | TM | Time (SU – Record) |br| | | | [HH.dddddd] in UTC Time | +--------------+-----------------------------------------+ | TN | Attribute name | +--------------+-----------------------------------------+ | TV | Attribute value in string form | +--------------+-----------------------------------------+ | UN | Distance Unit | +--------------+-----------------------------------------+ | VC | Vertical distance to center point | +--------------+-----------------------------------------+ | VD | Vertical or relative vertical distance | +--------------+-----------------------------------------+ | VH | Vertical distance to hinge point | +--------------+-----------------------------------------+ | ZD | Zenith Direct | +--------------+-----------------------------------------+ | ZE | Zenith or Zenith angle | +--------------+-----------------------------------------+ | ZV | Zenith Reverse | +--------------+-----------------------------------------+ General and Conventional enumerated field list ______________________________________________ +---------+--------+-----------------------+---------------------+----------------+ | Field | Type | 0 | 1 | 2 | +=========+========+=======================+=====================+================+ | AD | enum | North | South | | +---------+--------+-----------------------+---------------------+----------------+ | AU | enum | degree | grads | | +---------+--------+-----------------------+---------------------+----------------+ | CF | bool | cut | fill | | +---------+--------+-----------------------+---------------------+----------------+ | EC | enum | off | on | | +---------+--------+-----------------------+---------------------+----------------+ | OD | int | Center | Right | Left | +---------+--------+-----------------------+---------------------+----------------+ | UN | enum | Feet | Meter | US Survey Feet | +---------+--------+-----------------------+---------------------+----------------+ | EG | string | Left Trailing edge | Right Trailing Edge | center | +---------+--------+-----------------------+---------------------+----------------+ GPS Field List ______________ +--------------+----------------------------------------------+ | Field header | Explanation | +==============+==============================================+ | ``--`` | Description (Feature Code) | +--------------+----------------------------------------------+ | AE Location Indicator | +--------------+----------------------------------------------+ | AF | Azimuth format | +--------------+----------------------------------------------+ | AI | Antenna Index int (See Antenna.ini File) | +--------------+----------------------------------------------+ | AN | Antenna Number int (See Antenna.ini File) | +--------------+----------------------------------------------+ | AO | Azimuth Orientation | +--------------+----------------------------------------------+ | AT | Antenna Type (name of antenna) | +--------------+----------------------------------------------+ | AZ | Azimuth double Geodetic Angle | +--------------+----------------------------------------------+ | CL | Classification | +--------------+----------------------------------------------+ | CO | Coordinate System Option | +--------------+----------------------------------------------+ | CT | Origin center | +--------------+----------------------------------------------+ | DA | Datum Transformation Type | +--------------+----------------------------------------------+ | DC | Derivation Code | +--------------+----------------------------------------------+ | DH | HDOP from Rx | +--------------+----------------------------------------------+ | DM | Dimensions Used | +--------------+----------------------------------------------+ | DN | Datum name | +--------------+----------------------------------------------+ | DV | VDOP from Rx | +--------------+----------------------------------------------+ | DX | Base line Delta X | +--------------+----------------------------------------------+ | DY | Base line Delta Y | +--------------+----------------------------------------------+ | DZ | Base line Delta Z | +--------------+----------------------------------------------+ | E | Easting | +--------------+----------------------------------------------+ | EL | Elevation | +--------------+----------------------------------------------+ | EM | Ellipse Name | +--------------+----------------------------------------------+ | FI | File name | +--------------+----------------------------------------------+ | FO | File name one | +--------------+----------------------------------------------+ | FT | File name two | +--------------+----------------------------------------------+ | GF | Geodetic Flags | +--------------+----------------------------------------------+ | GM | GPS Measure Method | +--------------+----------------------------------------------+ | GN | Geoid Model Name | +--------------+----------------------------------------------+ | GO | Grid Orientation | +--------------+----------------------------------------------+ | HI | Height of laser at GPS ref. Point | +--------------+----------------------------------------------+ | HO | Horizontal Offset | +--------------+----------------------------------------------+ | HP | Horizontal Precision | +--------------+----------------------------------------------+ | HR | Height of laser target at store offset Pt. | +--------------+----------------------------------------------+ | HT | Height or Ellipsoid Ht. | +--------------+----------------------------------------------+ | IF | Ellipse inverse flattening | +--------------+----------------------------------------------+ | LA | Latitude | +--------------+----------------------------------------------+ | LN | Longitude | +--------------+----------------------------------------------+ | LX | Translation x | +--------------+----------------------------------------------+ | LY | Translation y | +--------------+----------------------------------------------+ | LZ | Translation z | +--------------+----------------------------------------------+ | MA | Measured antenna height | +--------------+----------------------------------------------+ | ME | Measure Method | +--------------+----------------------------------------------+ | N | Northing | +--------------+----------------------------------------------+ | OO | Orientation one | +--------------+----------------------------------------------+ | OT | Orientation two | +--------------+----------------------------------------------+ | OX | Rotation x | +--------------+----------------------------------------------+ | OY | Rotation y | +--------------+----------------------------------------------+ | OZ | Rotation z | +--------------+----------------------------------------------+ | PN | Point Name | +--------------+----------------------------------------------+ | PT | GPS Point Type | +--------------+----------------------------------------------+ | PV | Type of Vertical Adjustment | +--------------+----------------------------------------------+ | RA | Reduced antenna height | +--------------+----------------------------------------------+ | RD | Ellipsoid Radius | +--------------+----------------------------------------------+ | RE | Recording interval | +--------------+----------------------------------------------+ | RH | Horizontal RMS from Rx | +--------------+----------------------------------------------+ | RS | Rx Serial Number | +--------------+----------------------------------------------+ | RT | Rotation about origin | +--------------+----------------------------------------------+ | RV | Vertical RMS from Rx | +--------------+----------------------------------------------+ | RX | Rx Type | +--------------+----------------------------------------------+ | RY | Rectify | +--------------+----------------------------------------------+ | SA | Slope east | +--------------+----------------------------------------------+ | SC | Error Scale or Scale Factor | +--------------+----------------------------------------------+ | SD | Slope Distance | +--------------+----------------------------------------------+ | SF | Scale factor at origin | +--------------+----------------------------------------------+ | SG | Setup Group | +--------------+----------------------------------------------+ | SO | Slope north | +--------------+----------------------------------------------+ | SP | Scale factor | +--------------+----------------------------------------------+ | SV | Min. # of SV during obs. | +--------------+----------------------------------------------+ | TA | Tape Adjustment | +--------------+----------------------------------------------+ | TE | Translation East | +--------------+----------------------------------------------+ | TH | Translation North | +--------------+----------------------------------------------+ | TM | System Time | +--------------+----------------------------------------------+ | TP | Type of projection | +--------------+----------------------------------------------+ | TS | Antenna Serial Number | +--------------+----------------------------------------------+ | VO | Vertical Offset | +--------------+----------------------------------------------+ | VP | Vertical Precision | +--------------+----------------------------------------------+ | XX | Variance X | +--------------+----------------------------------------------+ | XY | Covariance X,Y | +--------------+----------------------------------------------+ | XZ | Covariance X,Z | +--------------+----------------------------------------------+ | YY | Variance Y | +--------------+----------------------------------------------+ | YZ | Covariance Y,Z | +--------------+----------------------------------------------+ | ZE | Zenith Angle | +--------------+----------------------------------------------+ | ZG | Zone Group (system) name | +--------------+----------------------------------------------+ | ZN | Zone name | +--------------+----------------------------------------------+ | ZZ | Variance Z | +--------------+----------------------------------------------+ GPS Enumerated Fields List __________________________ :AE: Location indicator for Denmark projections enum |br| • 1 = None |br| • 2 = Zeeland |br| • 3 = Jutland |br| • 4 = Bornholm :AF: Azimuth Format enum |br| • 0 = Geodetic |br| • 1 = Grid :AO: Azimuth Orientation WORD |br| • 1 = North |br| • 2 = South :CL: Classification enum |br| • 0 = UnknownClass |br| • 1 = Normal |br| • 2 = Control |br| • 3 = AsBuilt |br| • 4 = Check |br| • 5 = BackSight |br| • 6 = Deleted Normal |br| • 7 = Deleted Control |br| • 8 = Deleted AsBuilt |br| • 9 = DeletedCheck |br| • 10 = DeletedBackSight :CO: Coordinate System Option WORD |br| • 1 = None |br| • 2 = Scale only |br| • 3 = Keyed in |br| • 4 = Chosen from library :CT: Origin Center enum |br| • 0 = Equator |br| • 1 = Projection center :DA: Datum Transformation Type WORD |br| • 513 = csdMolodenskyDatum |br| • 514 = csdMultipleRegressionDatum |br| • 515 = csdSevenParameterDatum |br| • 516 = csdGridDatum |br| • 517 = csdWGS84Datum :DC: Derivation Code enum |br| • 1 = ModeBase (Base) |br| • 2 = ModeRover (Rover) |br| • 3 = ModeGetBase (GetBase) |br| • 4 = ModeStatic (Static) :DM: Number of Dimensions Used for a Calibration WORD |br| • 1 = 0D (None) |br| • 2 = 1D (Vertical only) |br| • 3 = 2D (Horizontal only) |br| • 4 = 3D (Both vertical and horizontal) |br| • 5 = Any :GF: Geodetic Flags Bit Flags |br| • Bit 0 = GPS Base Point |br| • Bit 1 = GPS Horizontal Control Point |br| • Bit 2 = GPS Veritcal Control Point |br| • Bit 3 = GPS Control Point |br| • Bit 4 = Local Map Plane Origin (Legacy, not used in Survey Pro 3.5 and beyond) |br| • Bit 5 = GPS Base Coordinate Invalid :GM: GPS Measure Method enum |br| • 0 = UnknownMethod |br| • 1 = UserInput |br| • 2 = Autonomous |br| • 3 = RTKFloat |br| • 4 = RTKFixed |br| • 5 = CopiedPoint |br| • 6 = RTCMCode |br| • 7 = WASS :GO: Grid Orientation WORD |br| • 1 = NE |br| • 2 = SW |br| • 3 = NW |br| • 4 = SE :ME: MeasureMethod enum |br| • 0 = Unknown |br| • 1 = True |br| • 2 = Uncorrected :PT: GPS Point Type enum |br| • 1 = Control |br| • 2 = Check |br| • 3 = DataCollect |br| • 4 = Offset |br| • 5 = RemoteElevation |br| • 6 = PostProcess |br| • 7 = UserInput :PV: Type of Vertical Adj. WORD |br| • 1 = inclined plane |br| • 2 = geoid model |br| • 3 = combined :TP: Type of Projection WORD |br| • 2049 = Albers Equal Area Conic |br| • 2050 = Cassini |br| • 2051 = Krovak |br| • 2052 = Lambert Conformal Conic One Parallel |br| • 2053 = Mercator |br| • 2054 = New Zealand Map Grid |br| • 2055 = Oblique Conformal Conic |br| • 2056 = Oblique Mercator Azimuth |br| • 2057 = Oblique Stereographic |br| • 2058 = Plane |br| • 2059 = Stereographic |br| • 2060 = RD Stereographic |br| • 2062 = Transverse Mercator |br| • 2063 = United Kingdom National Grid |br| • 2064 = Denmark |br| • 2065 = Hungarian EOV |br| • 2066 = Lambert Conformal Conic Two Parallel |br| • 2067 = Oblique Mercator Two Points |br| • 2068 = Double Stereographic |br| • 2069 = Grid Legacy Field List _________________ +----------------+----------------------------+ | Field header | Explanation | +================+============================+ | ``--`` | Description (Feature Code) | +----------------+----------------------------+ | AR | Angle right | +----------------+----------------------------+ | Ba | Base Latitude | +----------------+----------------------------+ | BC | Back circle | +----------------+----------------------------+ | Bh | Base Ellipsoid Height | +----------------+----------------------------+ | Bo | Base Longitude | +----------------+----------------------------+ | CS | Coordinate System | +----------------+----------------------------+ | DA | Datum | +----------------+----------------------------+ | EL | Elevation | +----------------+----------------------------+ | FI | Custome File Name | +----------------+----------------------------+ | GI | Geoid model index | +----------------+----------------------------+ | GU | Geoid Undulation at base | +----------------+----------------------------+ | Ha | Coefficient a | +----------------+----------------------------+ | Hb | Coefficient b | +----------------+----------------------------+ | Hc | Coefficient c | +----------------+----------------------------+ | Hd | Coefficient d | +----------------+----------------------------+ | HE | Hemisphere | +----------------+----------------------------+ | HT | Height | +----------------+----------------------------+ | LA | Latitude | +----------------+----------------------------+ | LN | Longitude | +----------------+----------------------------+ | ME | Method | +----------------+----------------------------+ | PN | Backsight point | +----------------+----------------------------+ | RT | Rotation | +----------------+----------------------------+ | SC | Scale | +----------------+----------------------------+ | SD | Slope Distance | +----------------+----------------------------+ | Va | Coefficient a | +----------------+----------------------------+ | Vb | Coefficient b | +----------------+----------------------------+ | Vc | Coefficient c | +----------------+----------------------------+ | ZE | Zenith | +----------------+----------------------------+ | ZO | Zone | +----------------+----------------------------+ Definitions ----------- General Raw Data ________________ Note Record ........... Job Record .......... :Record type: JB :Field headers: NM: Job name |br| DT: Date |br| TM: Time :Sample(s): :: “JB,NM%s,DT%s,TM%s” Mode Setup Record ................. The mode setup will be recorded at the beginning of the raw data file and whenever it is changed. :Record type: MO :Field headers: AD: Azimuth direction (ENUM) |br| UN: Distance unit (ENUM) |br| SF: Scale factor |br| EC: Earth curvature (ENUM) |br| EO: EDM offset (inch) (Default string “0.0”) |br| AU: Angle unit (ENUM) :Sample(s): :: “MO,AD%s,UN%s,SF%s,EC%s,EO0.0,AU%s” Conventional Raw Data _____________________ Adjusted point record ..................... :Record type: AP :Field headers: PN: Point name |br| N : Adjusted northing |br| E : Adjusted easting |br| EL: Adjusted elevation |br| ``--``: Description :Sample(s): :: “AP,PN%s,N %s,E %s,EL%s,--%s” Attributes .......... :Record type: AT :Field headers: TN: Attribute name |br| TV: Attribute value in string form :Sample(s): :: “AT,TN%s,TV%s” Backsight Record ................ :Record type: BK :Field headers: OP: Occupy point |br| BP: Back point |br| BS: Backsight |br| BC: Back circle :Sample(s): :: “BK,OP%s,BP%s,BS%s,BC%s” Cut Sheet Record ................ :Record type: CF (cut or fill) For an offset stakeout cut sheet. :Field headers: ST: Station |br| OD: Offset direction (ENUM) |br| OL: Offset length |br| EL: Elevation |br| GD: Grade (design) :Sample(s): :: “CF,ST%s,OD%s,OL%s,EL%s,GD%s” For a point stakeout cut sheet. :Field headers: PN: Point number |br| EL: Elevation |br| GD: Grade :Sample(s): :: “CF,PN%s,EL%s,GD%s” Note: From Survey Pro CE 3.5, the PN field and description field are removed from CF record for point stake out. Design point / location record .............................. :Record type: DE :Field headers: PN: Point name (design point, may be blank) |br| N : Northing |br| E : Easting |br| EL: Elevation |br| ``--``: Description (design point description, may be blank) :Sample(s): :: “DE,PN%s,N %s,E %s,EL%s,--%s” Define a Location Record ........................ :Record type: DL :Field headers: PN: Point name (POB) |br| HD: Relative horizontal distance |br| VD: Relative vertical distance |br| AZ: Azimuth |br| ``--`` Description of the stored point. :Sample(s): :: “DL,PN%s,HD%s,VD%s,AZ%s,--%s” Deleted point record .................... :Record type: DP :Field headers: PN : Point name :Sample(s): :: “DP,PN%s” Feature Code ............ :Record type: FC :Field headers: PN: Point name |br| FN: Feature code name (may be blank) :Sample(s): :: “FC,PN%s,FN%s” Line of Sight Record .................... :Record type: LS :Field headers: HI: Height of instrument |br| HR: Height of rod :Sample(s): :: “LS,HI%s,HR%s” Multiple Distance ................. :Record type: MD :Field headers: SD: Slope distance :Sample(s): :: “MD,SD %s:%s” Occupy Point Record ................... :Record type: OC :Field headers: OP: Point number |br| N : Northing (the header is N space) |br| E : Easting (the header is E space) EL: Elevation ``--`` Description :Sample(s): :: “OC,OP%s,N %s,E %s,EL%s,--%s” Offset delta record ................... :Record type: OE :Field headers: ST: Station |br| OE: Offset delta (actual offset – design offset) :Sample(s): :: “OE,ST%s,OE%s” Off Center Shot Record ...................... :Record type: OF :Field headers: AR: Angle right |br| ZE: Zenith |br| SD: Slope distance |br| OL: Offset length |br| HD: Horizontal distance |br| VD: Vertical distance |br| LR: Left/Right Offset :Sample(s): :: “OF,AR%s,ZE%s,SD%s” “OF,ZE%s,--Vert Angle Offset” “OF,OL%s,--Right Angle Offset” “OF,HD%s,--Horizontal Distance Offset” “OF,LR%s,--Left / Right Offset” “OF,VD%s,--Elevation Offset” Repeat Backsight ................ :Record type: RB (repeat backsight) :Field headers: OP: Occupied point |br| BP: Backsight point |br| AR: Angle right |br| ZE: Zenith angle |br| SD: Slope distance |br| HR: Height of rod at the backsight |br| ``--`` Description :Sample(s): :: “RB,OP%s,BP%s,AR%s,ZE%s,SD%s,HR%s,--%s” Repeat Directional .................. :Record type: RD :Field headers: BD: Backsight direct |br| FD: Foresight direct |br| ZD: Zenith direct |br| FV: Foresight reverse |br| ZV: Zenith reverse |br| BV: Backsight reverse :Sample(s): :: “RD,FD %s:%s” “RD,FV %s:%s” “RD,BD %s:%s” “RD,BV %s:%s” “RD,ZD %s:%s” “RD,ZV %s:%s” The data before the colon (:) is the integer set number and the data after the colon is the angle measurement. See MO record for angle units. Remote Elevation Record ....................... :Record type: RE :Field headers: OP: Occupied point |br| FE: Foresight elevation |br| ZE: Zenith angle |br| SD: Slope distance |br| ``--`` ( always “Remote elev”) :Sample(s): :: “RE,OP%s,FE%s,ZE%s,SD%s,--%s” Repeat Foresight ................ :Record type: RF (repeat foresight) :Field headers: OP: Occupied point |br| FP: Foresight point |br| AR: Angle right |br| ZE: Zenith angle |br| SD: Slope distance |br| HR: Height of rod at the foresight |br| ``--`` Description :Sample(s): :: “RF,OP%s,FP%s,AR%s,ZE%s,SD%s,HR%s,--%s” Resection Record ................ :Record type: RS :Field headers: PN: Point number |br| CR: Circular reading |br| ZE: Zenith (or VA, CE) |br| SD: Slope distance (or HD) :Sample(s): :: “RS,PN%s,CR%s,ZE%s,SD%s” // A resection with angles and distance “RS,PN%s,CR%s” // A resection with angles only Deltas record ............. :Record type: SD :Field headers: ND: Delta northing |br| ED: Delta easting |br| LD: Delta elevation |br| :Sample(s): :: “SD,ND%s,ED%s,LD%s” Stake Out Record ................ :Record type: SK :Field headers: OP: Occupy point |br| FP: Foresight point |br| AR: Angle right |br| ZE: Zenith |br| SD: Slope distance :Sample(s): :: “SK,OP%s,FP%s,AR%s,ZE%s,SD%s,--%s” Note: FP field used to record design point name. Starting from SPCE3.5, it records the actual point name. It also may be blank if there is no actual point stored. Slope Staking Record .................... :Record type: SL :Field headers: ST: Station |br| OD: Offset direction (ENUM) |br| EL: Actual catch point elevation |br| GD: Grade (design elevation of the catch point based on the slope line) |br| AS: Ahead on station (positive when rod is beyond design station, negative when before station) |br| HH: Horizontal distance to hinge point (always positive) |br| VH: Vertical distance to hinge point (positive when rod is above hinge) |br| HC: Horizontal distance to center line (always positive) |br| VC: Vertical distance to center point (positive when rod is above center point) |br| CF: Slope used (ENUM) |br| DS: Design slope |br| OB: Observed slope :Sample(s): :: “SL,ST%s,OD%s,EL%s,GD%s,AS%s,HH%s,VH%s,HC%s,VC%s,CF%s,DS%s,OB%s” Store Point Record .................. :Record type: SP :Field headers: PN: Point number |br| N: Northing |br| E: Easting |br| EL: Elevation |br| ``--`` Description :Sample(s): :: “SP,PN%s,N %s,E %s,EL%s,--%s” Slope Staking Reference Offset Record ..................................... :Record type: SR :Field headers: ST: Station |br| OD: Offset direction (ENUM) |br| EL: Actual elevation |br| GD: Grade (design elevation, corresponds to the elevation of the found catch point) |br| AS: Ahead on station (positive when rod is beyond design station, negative when before station) |br| HH: Horizontal distance to hinge point (always positive). This distance includes the reference offset. |br| VH: Vertical distance to hinge point (positive when rod is above hinge) |br| HC: Horizontal distance to center line (always positive). This distance includes the reference offset. |br| VC: Vertical distance to center point (positive when rod is above center point) |br| CF: Slope used (ENUM) |br| DS: Design slope |br| OB: Observed slope at the catch point |br| OL: Offset length from the catch point :Sample(s): :: “SR,ST%s,OD%s,EL%s,GD%s,AS%s,HH%s,VH%s,HC%s,VC%s,CF%s,DS%s,OB%s,OL%s” Sun Shot Record ............... :Record type: SU For a sun shot setup :Field headers: GH: Greenwich hour angle (GHA 0) |br| GH: Greenwich hour angle (GHA 24) |br| DE: Declination (DECL 0) |br| DE: Declination (DECL 24) |br| SM: Semi-diameter of Sun (in DMS) |br| DT: Local date (See General and Conventional Field List) |br| TM: Local time (See General and Conventional Field List) For the actual sun shot :Field headers: BD: Backsight direct |br| FD: Foresight direct |br| FV: Foresight reverse |br| BV: Backsight reverse |br| LA: Latitude |br| LO: Longitude |br| EG0: Left trailing edge sun position |br| EG1: Right trailing edge sun position |br| EG2: Center sun position :Sample(s): :: “SU,GH%s,GH%s,DE%s,DE%s,SM%s” “SU,DT%02s%02s%04s” “SU,LA%s,LO%s,EG%s” “SU,TM%s” “SU,%s%s%s” // Will write BD,BV or FD,FV with an angle measurement. See MO record for angle units. Traverse / Sideshot / Observation Record ........................................ :Record type: TR / SS / OB :Field headers: OP: Occupy point |br| FP: Foresight point |br| (one of the following) |br| - AZ: Azimuth |br| - AR: Angle right |br| - AL: Angle left |br| (one of the following pair) |br| - ZE: Zenith |br| - SD: Slope distance |br| (or) |br| - CE: Change elevation |br| - HD: Horizontal distance |br| ``--`` Description :Sample(s): :: “TR,OP%s,FP%s,AR%s,ZE%s,SD%s,--%s” “SS,OP%s,FP%s,AR%s,ZE%s,SD%s,--%s” “OB,OP%s,FP%s,AR%s,ZE%s,SD%s,--%s” GPS Raw Data Record Definitions _______________________________ GPS Antenna Height .................. :Record type: AH :Field headers: DC: Derivation Code (ENUM) |br| MA: Measured antenna height |br| ME: Measure Method (ENUM) |br| RA: Reduced antenna height (to phase center) :Sample(s): :: “AH,DC%s,MA%s,ME%s,RA%s” GPS Base Line ............. :Record type: BL :Field headers: DC: Derivation |br| PN: Point Name |br| DX: Base line Delta X |br| DY: Base line Delta Y |br| DZ: Base line Delta Z |br| ``--``: Description (Feature Code) |br| GM: GPS Measure Method (ENUM) |br| CL: Classification |br| HP: Horizontal Precision |br| VP: Vertical Precision :Sample(s): :: “BL,DC%s,PN%s,DX%s,DY%s,DZ%s,--%s,GM%s,CL%s,HP%s,VP%s” Set Base Receiver Position .......................... :Record type: BP :Field headers: PN : Point Name |br| LA: Latitude |br| LN: Longitude |br| HT: Ellipsoid Height |br| SG: Setup Group (default = 0) :Sample(s): :: “BP,PN%s,LA%s,LN%s,HT%s,SG%s” COGO Settings record .................... :Record type: CG :Field headers: AO: Azimuth Orientation (ENUM) |br| GO: Grid Orientation (ENUM) :Sample(s): :: “CG,AO%s,GO%s” Coordinate System Identity .......................... :Record type: CS :Field headers: CO: Coordinate system option (ENUM) |br| ZG: Zone group (system) name |br| ZN: Zone name |br| DN: Datum name :Sample(s): :: “CS,CO%s,ZG%s,ZN%s,DN%s” Calibration Point ................. :Record type: CT :Field headers: PN: Point Name |br| DM: Dimensions used (ENUM) |br| RH: Horizontal residual |br| RV: Vertical residual :Sample(s): :: “CT,PN%s,DM%s,RH%s,RV%s” RMS Covariance of GPS Position .............................. :Record type: CV :Field headers: DC: Derivation (ENUM) |br| SV: Minimum number of SV during observation |br| SC: Error Scale |br| XX: Variance X |br| XY: Covariance X,Y |br| XZ: Covariance X,Z |br| YY: Variance Y |br| YZ: Covariance Y,Z |br| ZZ: Variance Z :Sample(s): :: “CV,DC%s,SV%s,SC%s,XX%s,XY%s,XZ%s,YY%s,YZ%s,ZZ%s” Datum Grid Record ................. :Record type: DG :Field headers: FI: File name :Sample(s): :: “DG,FI%s” Datum Record ............ :Record type: DT :Field headers: DA: Type of datum (ENUM) |br| RD: Ellipsoid radius |br| IF: Ellipse inverse flattening |br| OX: Rotation x |br| OY: Rotation y |br| OZ: Rotation z |br| LX: Translation x |br| LY: Translation y |br| LZ: Translation z |br| SP: Scale factor in ppm :Sample(s): :: “DT,DA%s,RD%s,IF%s,OX%s,OY%s,OZ%s,LX%s,LY%s,LZ%s,SP%s” GPS Edit Point Record ..................... :Record type: EE :Field headers: GF: Geodetic Flags (ENUM) |br| SG: Setup Group :Sample(s): :: “EE,GF%s,SG%s” Geodetic position ................. When a point is stored, its geodetic position is recorded. :Record type: EP :Field headers: TM: Time |br| LA: Latitude |br| LN: Longitude |br| HT: Ellipsoid Height |br| RH: Horizontal RMS returned from receiver |br| RV: Vertical RMS returned from receiver |br| DH: HDOP if receiver returns this info |br| DV: VDOP if receiver returns this info |br| GM: GPS Method (ENUM) |br| CL: Classification (ENUM) :Sample(s): :: “EP,TM%s:%s:%s,LA%s,LN%s,HT%s,RH%s,RV%s,DH%s,DV%s,GM%s,CL%s” “EP,TM%s:%s:%s,LA%s,LN%s,HT%s,RH%s,RV%s,GM%s,CL%s” Equipment Record ................ :Record type: EQ :Field headers: DC: Derivation Code (ENUM) |br| RX: Rx Type |br| RS: Rx Serial Number |br| AN: Antenna Number (from Antenna.ini) |br| AI: Antenna Index (measure to index from antenna.ini) |br| AT: Antenna Type (name of antenna) |br| TS: Antenna Serial Number |br| TA: Tape Adjustment |br| HO: Horizontal Offset |br| VO: Vertical Offset :Sample(s): :: “EQ,DC%s,RX%s,RS%s,AN%s,AI%s,AT%s,TS%s,TA%s,HO%s,VO%s” Ellipsoid Record ................ :Record type: ES :Field headers: RD : a - radius of semi major |br| IF: 1/f - inverse flattening |br| EM: Name - ellipse name |br| :Sample(z: :: “ES,RD%s,IF%s,EM%s” GPS stakeout record ................... :Record type: GK :Field headers: PN: Point name (actual point, may be blank) |br| N : Northing |br| E : Easting |br| EL: Elevation |br| ``--`` Description (actual point description, may be blank) :Sample(s): :: “GK,PN%s,N %s,E %s,EL%s,--%s” GPS Offset Shot Record ...................... :Record type: GO :Field headers: PN: Point Name |br| AZ: Azimuth |br| ZE: Zenith Angle |br| SD: Slope Distance |br| HI: Height of laser at GPS reference point |br| HR: Height of laser target at store offset point |br| ``--`` Description :Sample(s): :: “GO,PN%s,AZ%s,ZE%s,SD%s,HI%s,HR%s,--%s” GPS Point Record ................ :Record type: GP :Field headers: PN: Point Name |br| PT: Point Type (ENUM) :Sample(s): :: “GP,PN%s,PT%s” GPS adjusted point record ......................... :Record type: GR :Field headers: N : Northing |br| E : Easting |br| EL: Elevation |br| ``--``: Description :Sample(s): :: “GR,PN%s,N %s,E %s,EL%s,--%s” GPS Store Point ............... The GS record is similar to the SP record, which records the coordinate of a point. This record identifies the point is created by GPS. :Record type: GS :Field headers: PN: Point Name |br| N : Local Northing |br| E : Local Easting |br| EL: Local Elevation |br| ``--``: Description :Sample(s): :: “GS,PN%s,N%s,E%s,EL%s,--%s” Horizontal Calibration (Adjust) ............................... :Record type: HA :Field headers: N : Origin north |br| E : Origin east |br| TH: Translation north |br| TE: Translation east |br| RT: Rotation about origin |br| SF: Scale factor at origin :Sample(s): :: “HA,N %s,E %s,TH%s,TE%s,RT%s,SC%s” Note: all the fields may be blank if there is no adjustment done. Extended Projection Record .......................... :Record type: PE :Field headers: TP: Type of projection (ENUM) |br| LA: Latitude of origin |br| LN: Longitude of origin |br| HT: Height of origin |br| N : Origin north |br| E : Origin east |br| EL: Origin elevation |br| SC: Scale factor |br| OO: Orientation one |br| OT: Orientation two |br| CT: Origin center (ENUM) |br| AF: Azimuth format (ENUM) |br| RY: Rectify |br| AE: Area (ENUM) |br| FO: File name one |br| FT: File name two :Sample(s): :: “PE,TP%s,LA%s,LN%s,HT%s,N %s,E %s,EL%s,SC%s,OO%s,OT%s, CT%s,AF%s,RY%s,AE%s,FO%s,FT%s” Projection Record ................. :Record type: PJ :Field headers: TP: Type of projection (ENUM) |br| LA: Latitude of origin |br| LN: Longitude of origin |br| HT: Height of origin |br| N : Origin north |br| E : Origin east |br| EL: Origin elevation |br| SC: Scale factor |br| OO: Orientation one |br| OT: Orientation two :Sample(s): :: “PJ,TP%s,LA%s,LN%s,HT%s,N %s,E %s,EL%s,SC%s,OO%s,OT%s” Local coordinates of calibration point ...................................... :Record type: RP :Field headers: N : Northing |br| E : Easting |br| EL: Elevation |br| ``--``: Description :Sample(s): :: “RP,PN%s,N %s,E %s,EL%s,--%s” Receiver Setup .............. :Record type: RX :Field headers: DC: Derivation Code (ENUM) |br| RA: Reduced antenna height (to phase centre) |br| RE: Recording interval in seconds |br| FI: Name of post processing file opened :Sample(s): :: “RX,DC%s,RA%s,RE%s,FI%s” Local site settings ................... :Record type: ST :Field headers: LA: Latitude |br| LN: Longitude |br| HT: Height |br| SC: Scale factor |br| N : Northing offset |br| E : Easting offset :Sample(s): :: “ST,LA%s,LN%s,HT%s,SC%s,N %s,E %s” Vertical Calibration (Adjust) ............................. :Record type: VA :Field headers: PV: Type of vertical adjustment (ENUM) |br| N : Origin north (may be blank) |br| E : Origin east (may be blank) |br| LZ: Constant adjustment – translation Z (may be blank) |br| SO: Slope north (may be blank) |br| SA: Slope east (may be blank) |br| GN: Geoid Model Name :Sample(s): :: “VA,PV%s,N %s,E %s,LZ%s,SO%s,SA%s,GN%s” Legacy Raw Data Record Definitions ___________________________________ These records are not used in Survey Pro version 3.5 and beyond. Accumulating Angle-right ........................ :Record type: AA :Field headers: BC: Back circle |br| AR: Angle right |br| ZE: Zenith |br| SD: Slope distance :Sample(s): :: “AA,BC%s,AR%s,ZE%s,SD%s” Bench level, backsight ...................... :Record type: BB :Field headers: PN: Backsight point |br| EL: BS elevation |br| ZE: Zenith |br| SD: Slope distance |br| ``--``: Description :Sample(s): :: “BB,PN%s,EL%s,ZE%s,SD%s,--%s” Base Point Geoid Model Elevation ................................ Replaced by Vertical adjustment record VA. :Record type: BG :Field headers: PN: Point Name |br| HT: Ellipsoid Height |br| GU: Geoid Undulation at base |br| EL: Elevation of base :Sample(s): :: “BG,PN%s,HT%s,GU%s,EL%s” Bench level, side shots ....................... :Record type: BS :Field headers: PN: FS point |br| ZE: Zenith |br| SD: Slope distance |br| ``--``: Description :Sample(s): :: “BS,PN%s,ZE%s,SD%s,--%s” Bench level, traverse ..................... :Record type: BT :Field headers: PN: FS point |br| ZE: Zenith |br| SD: Slope distance |br| ``--``: Description :Sample(s): :: “BT,PN%s,ZE%s,SD%s,--%s” Horizontal Control Point ........................ When solving local transformation, each control point’s lat, long and height will be recorded. :Record type: HC :Field headers: PN: Point Name |br| LA: Latitude |br| LN: Longitude |br| HT: Ellipsoid Height |br| ``--``: Description :Sample(s): :: “HC,PN%s,LA%s,LN%s,HT%s,--%s” Vertical Ellipsoid Height Setup ............................... Replaced by the vertical adjust record VA. :Record type: LE :Field headers: ``--``: Description string :Sample(s): :: “LE,--%s” Vertical Geoid Model Setup .......................... Replaced by the vertical adjust record VA. :Record type: LG :Field headers: GI: Geoid model index :Sample(s): :: “LG,GI%s” Horizontal Mapping Plane Setup .............................. Replaced by the projection records (ES,PJ,DT,CS). :Record type: LM :Field headers: ME: Method |br| CS: Coordinate System |br| DA: Datum |br| ZO: Zone |br| HE: Hemisphere |br| FI: Custom file name (cs5 or pj5) :Sample(s): :: “LM,ME%s,CS%s,DA%s,ZO%s,HE%s,FI%s” Local transforming coefficients for horizontal .............................................. Replaced by Horizontal adjustment record HA. :Record type: LH :Field headers: PN: Point Name |br| Ha: Coefficient a |br| Hb: Coefficient b |br| Hc: Coefficient c |br| Hd : Coefficient d |br| SC: Scale |br| RT: Rotation :Sample(s): :: “LH,PN%s,Ha%s,Hb%s,Hc%s,Hd%s,SC%s,RT%s” Local transforming coefficients for vertical ............................................ Replaced by Vertical adjustment record VA. :Record type: LV :Field headers: PN: Point Name |br| Va: Coefficient a |br| Vb: Coefficient b |br| Vc: Coefficient c |br| Ba: Base Latitude |br| Bo: Base Longitude |br| Bh: Base Ellipsoid Height :Sample(s): :: “LV,PN%s,Va%s,Vb%s,Vc%s,Ba%s,Bo%s,Bh%s” Vertical Control point ...................... When solving local transformation, each control point’s lat, long and height will be recorded. :Record type: VC :Field headers: PN: Control point number |br| LA: Latitude of control point |br| LN: Longitude of control point |br| HT: Ellipsoid height of control point |br| ``--``: Description :Sample(s): :: “VC,PN%s,LA%s,LN%s,HT%s,--%s” totalopenstation-0.5.3/docs/installing.rst000066400000000000000000000157411477035261600207770ustar00rootroot00000000000000.. _installing: ============================= Installing Total Open Station ============================= There are a few different ways to install Total Open Station, depending on your operating system. .. note:: Since version 0.5, Total Open Station is based on Python 3 only. Python 2 is now unsupported. GNU/Linux distributions ======================= Installing Total Open Station through your Linux package manager, if available, is the only way to get automatic updates to the most recent version. All other installation methods require you to keep track of new releases and manually update. Total Open Station will not notify you when a new release is available. To install the latest release, see :ref:`using-pip` below. OpenSUSE -------- Total Open Station is packaged for OpenSUSE. Installing is as easy as:: $ sudo zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_Leap_15.1/ GEO $ sudo zypper refresh $ sudo zypper install TotalOpenStation Change the OpenSUSE version as your wish. Debian and Ubuntu ----------------- Total Open Station is included in Debian and Ubuntu, just:: sudo apt-get install totalopenstation as usual. Please note that the version provided by your distribution may not be the latest release. Mac OSX ======= Download Python3 from the `official website `_, and follow `this document on the Python.org website `_, that will help you choosing the correct version of Python to use (Python 3.6.8, 3.7.2 and later have builtin Tcl/Tk). .. warning:: Do not use the pre-installed Python that comes with the OSX operating system which has serious bugs that can cause application crashes. Then follow the section :ref:`using-pip` below. Microsoft Windows ================= Download the most recent version of Total Open Station from `Github download `_ and run it. The Windows version of Total Open Station is portable and everything is included in the executable, without need to install. To upgrade to a newer version, just go to the Github download page again. No data will be lost! .. warning:: In some cases, there may be a warning about a potential virus threat in the downloaded ``.exe`` file. This is a false positive and we are actively reaching out to antivirus vendors to make sure that Total Open Station is recognized as genuine software. See `issue #140`_ for more details. On a technical level, the Windows version is created by an automated procedure run on GitHub, based solely on the open source code of Total Open Station and PyInstaller. See Github Action workflow `pyinstaller.yml`_. .. _`issue #140`: https://github.com/totalopenstation/totalopenstation/issues/140 .. _`pyinstaller.yml`: https://github.com/totalopenstation/totalopenstation/actions/workflows/pyinstaller.yml Install the Prolific PL2032 drivers ----------------------------------- (optional, but recommended). Most USB-serial adapters are made with the Prolific chipset. If plugging the cable gives you errors about missing drivers for your hardware, drivers for Windows can be downloaded from the `Prolific website `_. .. _using-pip: Using pip ========= Until your operating system's packaging tools (e.g. apt or yum) allow you to install Total Open Station along with other programs, the recommended way to install is using pip_ (a package manager for Python) and a virtual environment: basically you don't mix packages installed system-wise with your package manager and user-installed software). Here follows a detailed step-by-step guide using a terminal. .. _pip: http://www.pip-installer.org/ Requirements ------------ You need to have Python installed on your machine. Total Open Station runs on all supported Python versions (from 3.6 to 3.9). On Linux, make sure that the ``python3-tk`` or ``python3-tkinter`` package is installed on your system, otherwise install it with your package manager, for example on Debian-based systems like Ubuntu:: sudo apt install python3-tk or for ArchLinux:: pacman -S tk Tkinter is the library used for the graphical interface of Total Open Station. Create a virtual environment ---------------------------- Creating a virtual environment is as easy as typing in a terminal:: python3 -m venv tops-environment A new directory named ``tops-environment`` has been created. It contains a minimal set of files needed to manage a Python installation that is isolated from the one installed on your system, helping to keep things clean. Now, activate the environment with:: source tops-environment/bin/activate (On Windows, this will be tops-environment/Scripts/activate) From now on, all Python-related actions will be executed within the newly created environment, and not on the system-wide installation. You terminal should look a bit different when the virtual environment is active:: (tops-environment)steko@gibreel:$ You can change directory freely, the environment will remain active. You *deactivate* the environment (that is, you exit from it), with the ``deactivate`` command. Installing Total Open Station ----------------------------- Once the virtual environment is *active*, you're ready to install Total Open Station, with:: pip install totalopenstation This will automatically download the latest released version from the Python Package Index (PyPI), and install all the other required Python packages as well. Installing development versions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sometimes it is useful to install development versions before they are released, to help with testing of new features and making sure that there are no new bugs. Using the procedure described above it is fairly easy to create another, separate environment. Once the new environment is *active*, the command for installing a development version is:: pip install -e git+https://github.com/totalopenstation/totalopenstation#egg=totalopenstation Developers may ask you to install from another repository, but the concept stays the same. This mechanism is very flexible and allows to install and test different versions safely. Running the program ------------------- When the program is installed, you can use it from the command line or with a graphical interface (recommended for new users). From your terminal, type:: totalopenstation-gui.py and the program should start. Of course you can also run the command line programs: - totalopenstation-cli-connector.py downloads data from your total station - totalopenstation-cli-parser converts raw data in common formats like DXF and CSV Please report any errors to the `bug tracker`_. The next time you want to run the program, follow these steps: #. open a terminal #. ``cd`` to the directory where the virtual environment was created #. ``source tops-environment/bin/activate`` to enter the virtualenv #. ``totalopenstation-gui.py`` will start the program totalopenstation-0.5.3/docs/interfaces/000077500000000000000000000000001477035261600202145ustar00rootroot00000000000000totalopenstation-0.5.3/docs/interfaces/cli_connector.rst000066400000000000000000000017261477035261600235750ustar00rootroot00000000000000.. _cli-connector: ================================ Total Open Station CLI Connector ================================ This is a command line application to download raw data from total station devices. Synopsis ======== totalopenstation-cli-connector.py [options] Options ======= -h, --help show this help message and exit -m MODEL, --model=MODEL select input MODEL -p PORT, --port=PORT select input SERIAL PORT -o FILE, --outfile=FILE select output FILE (do not specify for stdout) Using totalopenstation-cli-connector ------------------------------------ The ``--model`` and ``--port`` options are mandatory. In most cases the default parameters for serial connection should work, but you should know how your total station is set, or alternatively you should be able to set serial parameters on the total station directly. Output goes to stdout by default, but it is recommended to use the -o option. totalopenstation-0.5.3/docs/interfaces/cli_parser.rst000066400000000000000000000027071477035261600230770ustar00rootroot00000000000000.. _cli-parser: ============================= Total Open Station CLI Parser ============================= This is a command line application to convert raw data to common formats for use in CAD or GIS environments. Synopsis ======== totalopenstation-cli-parser [options] Options ======= -h, --help show this help message and exit -i FILE, --infile=FILE select input FILE (do not specify for stdin) -o FILE, --outfile=FILE select output FILE (do not specify for stdout) -f FORMAT, --input-format=FORMAT select input FORMAT --2d Exclude Z coordinates, output only 2D data -t FORMAT, --output-format=FORMAT select input FORMAT -r, --raw Enhanced parsed file process --overwrite overwrite existing output file --list list the available input and output formats Using totalopenstation-cli-parser --------------------------------- If no input file is specified, input is read from stdin. Output goes to stdout by default, but it is recommended to use the -o option. Raw parsing ----------- The ``--raw`` option is useful when exporting to CSV for processing in other programs, and will export all field records found in the raw data from the total station. It only makes sense for certain input formats where the original measurements are stored, namely: - Leica GSI - Nikon RAW - Carlson RW5 totalopenstation-0.5.3/docs/interfaces/gui_main.rst000066400000000000000000000065001477035261600225370ustar00rootroot00000000000000.. _gui-main: ====================== Total Open Station GUI ====================== Downloading raw data -------------------- To download raw data, your total station must be connected to the computer you are using, and the connection parameters must be known and set in the program. Total Open Station saves certain parameters across work sessions, but not all of them are saved, yet. The normal download procedure is a four-step operation: #. once the right parameters are set, click on the :guilabel:`Connect` button #. a small window appears, telling that the program is ready to start the download #. start the data transfer from the menu of the total station #. press the :guilabel:`OK` button in the small window (the order of these two last steps matters) Downloaded data will be shown in real-time in the main program window. A short information dialog will appear at the end of the transfer. If any error blocks you in this procedure, please send a detailed description to the mailing list so we can help you. Saving raw data --------------- Raw data shown in the main program window can be edited if you need, and saved to disk clicking the :guilabel:`Save raw data` button. We highly recommend to save all data to disk before any other action, because it prevents data loss and it is a very convenient way to have a backup of your work. Plus, raw data files are generally very small in size if compared to the exported files. By default saved files get a :file:`.tops` extension, but it is absolutely optional to have this extension. Opening previously saved data ----------------------------- The :guilabel:`Open file` button lets you open any ASCII file you have on your disk for processing with Total Open Station, either previously saved with TOPS itself or not. Data can be edited in the text area. Editing patterns include: - removing lines of data that don't need to be processed - correcting errors in data - pasting more than one data file together Please note that if you do not know well the raw data format you are editing, data may become inconsistent, and it will not be possible to process them properly later. If you are unsure, do not edit raw data. Exporting data -------------- The main purpose of Total Open Station is to export raw data in formats that are not read by GIS and CAD programs, to common formats that are easy to import. To start exporting data, make sure that the text area in the main program window contains the data you want to export. If this is not the case, you can either download data from your total station or open a previously-saved data file. Click the :guilabel:`Process data` button. A window will appear, allowing you to choose two processing options: - the input format - the output format Select the input format of the raw data you have (if you are using the same total station all the time, it will be probably the same -- we are working on adding a way to save the last used formats across different working sessions). Then select the output format you want to use, and proceed with the :guilabel:`OK` button. You will be asked where you want to save the exported file. You can now open your exported data in the GIS or CAD program of choice for further processing. Should you need to go back to the original data, you can always repeat the above procedure starting from the saved raw data file.totalopenstation-0.5.3/docs/interfaces/main.rst000066400000000000000000000031051477035261600216710ustar00rootroot00000000000000.. _interfaces: ======================== Using Total Open Station ======================== There are two ways to use Total Open Station, from the command line or as a user-friendly program. Each mode of operation has its drawbacks, and both are constantly used and tested. Graphical User Interface ======================== If you followed the guide about :ref:`installing`, you should be able to start Total Open Station. The basic usage of Total Open Station is made of the following steps: #. download raw data from the total station #. save raw data (optional, but recommended) #. export raw data to an output format Saving raw data enables you to open data files even at a later stage and process them when it's more appropriate. A complete manual of :ref:`gui-main` Command-line ============ After :ref:`installing`, there will be three new executable programs in your path. Two of them are meant for being run in a terminal, and are extremely useful for batch operations and easy repeating of common tasks with minimum time effort. :ref:`cli-connector` and :ref:`cli-parser` are two command line programs that make the same features of the graphical interface available to those who prefer working in a terminal. They are well documented, and they make it possible to process large amounts of data files via shell scripting, or to drastically reduce the time needed for downloading raw data. These two programs also provide a basic but complete example of how to use Total Open Station as a programming library. .. toctree:: :maxdepth: 1 cli_connector cli_parser gui_main totalopenstation-0.5.3/docs/make.bat000066400000000000000000000065621477035261600175070ustar00rootroot00000000000000@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=_build set SPHINXOPTS= set PAPER= set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^ where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. changes to make an overview over all changed/added/deprecated items echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\${PROJECT_NAME_NOSPACE}.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\${PROJECT_NAME_NOSPACE}.ghc goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) :endtotalopenstation-0.5.3/docs/models/000077500000000000000000000000001477035261600173545ustar00rootroot00000000000000totalopenstation-0.5.3/docs/models/main.rst000066400000000000000000000043111477035261600210310ustar00rootroot00000000000000.. _models: ====== Models ====== Total Open Station handle the retrieving of data from stations by serial link. Parameters of connection for some models are directly implemented in Total Open Station. Other models could be linked using the connect window (GUI only). .. _implemented_models: Implemented models ================== Those following models have there connection tested and data are retrieved correctly. .. toctree:: :maxdepth: 1 :glob: model_implemented Other models ============ A connect window is available in the GUI to be able to set parameters and retrieve data from non implemented models. Unimplemented :term:`models ` can be integrated to Total Open Station. The best way to have your model included in the next version of Total Open Station is to fill a issue in the `bug tracker`_ and attach the values obtained following the `Getting sample data`_ guide. If you can write Python code, you can also write a module by yourself using the existing ones as a guide and submit a `pull request`_. If you write a module, we will be happy to receive it and include it in the Total Open Station source tree. .. _getting_sample_data: Getting sample data =================== Even when your device is not listed among the supported ones, Total Open Station can still be useful, particularly for: 1. finding the right **serial connection parameters** from an unknown device. You can play with the 8 options and see the results in a text area. Once the downloaded results look good, you can be almost sure that you have used the right parameters, and we can add the tested model parameters to the program database; 2. retrieving **sample data** from unknown models and submit them to allow support of those models in future releases of the program. To do this, you can just use the main Total Open Station executable. .. warning:: Remember: Total Open Station has no wizard, and you have to tune the serial port options using your prior knowledge of your total station (e.g. read the manual that came with it, look at other programs' options). .. seealso:: The :ref:`contributing` page to find out how to join the project and participate actively to the development. totalopenstation-0.5.3/docs/models/model_implemented.rst000066400000000000000000000052141477035261600235730ustar00rootroot00000000000000======================================= :mod:`leica_tcr_1205` -- Leica TCR 1205 ======================================= .. moduleauthor:: Stefano Costa .. moduleauthor:: Luca Bianconi Description ----------- This is a quite recent total station. Data were provided by Joseph Reeves of Oxford Archaeology. Connection ---------- :Baudrate: higher than 19200 :Bytesize: 8 :StopBits: 1 :Parity: None Data format ----------- The data format is ASCII, quite simple. The only thing to note is that data dumps contain both relative and absolute measures. :ref:`if_leica_tcr_1205` ===================================== :mod:`nikon_npl_322plus` -- Nikon NPL-322+ ===================================== .. moduleauthor:: Sebastian Gutwein .. versionadded:: 0.6 Description ----------- Tested on a NPL 322+ but should also work with other NPL 322 models. Connection ---------- Tested using a serial cable with an usb adaptor. :Baudrate: 9600 :Bytesize: 8 :StopBits: 1 :Parity: None Data format ----------- The data format is in ASCII format. :ref:`if_nikon_raw` ===================================== :mod:`nikon_npl_350` -- Nikon NPL-350 ===================================== .. moduleauthor:: Stefano Costa Description ----------- Connection ---------- Even the brute method ``cat /dev/ttyS0 > file`` creates an ASCII file without any problem, so probably the default parameters for the serial port are OK. :Baudrate: higher than 19200 :Bytesize: 8 :StopBits: 1 :Parity: None Data format ----------- The data format is in ASCII format. :ref:`if_nikon_raw` ======================================= :mod:`trimble` -- Trimble ======================================= .. moduleauthor:: Stefano Costa Description ----------- Connection ---------- :Baudrate: 9600 :Bytesize: 8 :StopBits: 1 :Parity: None Data format ----------- The data format is ASCII, quite simple. :ref:`if_trimble_are` ======================================= :mod:`zeiss_elta_r55` -- Zeiss Elta R55 ======================================= .. moduleauthor:: Stefano Costa Description ----------- This is a quite old device, in use at the University of Siena. The first steps in TOPS development were achieved with it. Connection ---------- The hardware interface consists of a serial RS232 cable, that works also with a common :term:`serial-USB adapter` . :Baudrate: 9600 :Bytesize: 7 :Parity: None Output formats -------------- The Zeiss Elta R55 total station can output data in four different formats, only one of which is currently supported: - :ref:`if_zeiss_rec_500` - Zeiss R-4 - Zeiss R-5 - Zeiss R-E totalopenstation-0.5.3/docs/output_formats/000077500000000000000000000000001477035261600211645ustar00rootroot00000000000000totalopenstation-0.5.3/docs/output_formats/main.rst000066400000000000000000000021531477035261600226430ustar00rootroot00000000000000.. _output_formats: ============== Output formats ============== Total Open Station supports a number of output formats. As input formats, data formats can be classified into two groups: 1. "raw" data with polar coordinates and lots of information 2. processed data with cartesian coordinates .. _implemented_of: Implemented formats =================== Output formats are: .. toctree:: :maxdepth: 1 :glob: of_* Unknown formats =============== Unimplemented :term:`formats ` can be added to Total Open Station. The best way to have your format included in the next version of Total Open Station is to fill a support request in the `bug tracker`_ and attach some sample data dumps obtained from your original software. If you can write Python code, you can also write a module by yourself using an existing one as a guide and the :ref:`new` directive. If you write a module, we will be happy to receive it and include it in the Total Open Station source tree. .. seealso:: The :ref:`contributing` page to find out how to join the project and participate actively to the development. totalopenstation-0.5.3/docs/output_formats/of_implemented.rst000066400000000000000000000073031477035261600247100ustar00rootroot00000000000000..rubric:: Foreword In this page, formats are described using labels which are: +----------+------------------------------+ | Label | Explanation | +==========+==============================+ | PID | Point number or referenc | +----------+------------------------------+ | type | Point type (see below) | +----------+------------------------------+ | angle | Horizontal angle or azimuth | +----------+------------------------------+ | z_angle | zenithal angle | +----------+------------------------------+ | distance | Horizontal or slope distance | +----------+------------------------------+ | th | Target heigh | +----------+------------------------------+ | ih | Instrument heigh | +----------+------------------------------+ | circle | Angle on the circle | +----------+------------------------------+ | station | Station point for reference | +----------+------------------------------+ | TEXT | Some descriptive text | +----------+------------------------------+ Point type +------+---------------------------------------+ | Type | Explanation | +======+=======================================+ | PT | Simple point with only coordinates | +------+---------------------------------------+ | ST | Station | +------+---------------------------------------+ | BS | Backsight point | +------+---------------------------------------+ | PO | Point with polar coordinates and more | +------+---------------------------------------+ ====================== :mod:`tops_csv` -- CSV ====================== Description ----------- This is a standard file format for spreadsheet and transfer between softwares. |br| The file is comma separated. Data format ----------- Yet, this format is not parametric and values return are the following:: PID, type, Point Name, x, y, angle, z_angle, distance, th, ih, circle, station ====================== :mod:`tops_dat` -- DAT ====================== Description ----------- This format is used in Archis software for photorectification, photo mosaic and photogrammetric survey. Data format ----------- Return format is points coordinates:: PID, x, y, z, TEXT ====================== :mod:`tops_dxf` -- DXF ====================== Description ----------- This format is a standard format for CAD softwares like AutoCAD, QCAD, LibreCAD... Data format ----------- The format is based on the official `DXF R15 (2000) documentation `_. |br| Layers can be separated for each point or not. |br| This format can describe points or lines. ============================== :mod:`tops_geojson` -- GeoJSON ============================== Description ----------- This format follow the GeoJSON standard `RFC 7946 `_. |br| Moreover, this format is the internal format used in Total Open Station. |br| It is supported by numerous mapping and GIS software. Data format ----------- GeoJSON features collections. ====================== :mod:`tops_sql` -- SQL ====================== Description ----------- This format is used by PostGIS which adds support for geographic objects to the PostgreSQL object-relational database.|br| `SQL Reference `_ Data format ----------- Format is points coordinates:: PID, x, y, z, TEXT ====================== :mod:`tops_txt` -- Txt ====================== Description ----------- A simple ASCII format to export points coordinates. Data format ----------- Format is points coordinates:: x, y, z totalopenstation-0.5.3/docs/output_formats/of_landxml.rst000066400000000000000000000271111477035261600240430ustar00rootroot00000000000000.. _LandXML website: http://www.landxml.org/ .. _of_landxml: ============================== :mod:`tops_landxml` -- LandXML ============================== .. moduleauthor:: Damien Gaignon .. versionadded:: 0.6 Description ----------- LandXML is committed to providing an non-proprietary data standard (LandXML), driven by an consortium of partners for the inter-operability of data utilized within the Land Development industry. The official documentation about the format is provided on the `LandXML website`_. LandXML is a specialized XML (eXtensible Mark-up Language) data file format containing civil engineering and survey measurement data commonly used in the Land Development and Transportation Industries. LandXML structure ----------------- LandXML use a schema which specifies how to formally describe the elements of the document. The schema currently used is version 1.2. Units tag _________ Currently, the header of the XML file will always be:: Metric is choosed as the default unit system. If one need Imperial, ask for it in the `bug tracker`_. Tags and attributs __________________ +------------------+---------------------+----------------------------+------------------+ | Tag | Attribut | Value | Parent tag | +==================+=====================+============================+==================+ | Survey | | | | +------------------+---------------------+----------------------------+------------------+ | SurveyHeader | | | Survey | +------------------+---------------------+----------------------------+------------------+ | | name | "from TOPS" | Survey | +------------------+---------------------+----------------------------+------------------+ | Equipment | | | Survey | +------------------+---------------------+----------------------------+------------------+ | CgPoints | | | Survey | +------------------+---------------------+----------------------------+------------------+ | CgPoint | | x y [z] | CgPoints | +------------------+---------------------+----------------------------+------------------+ | | name | point_name | | +------------------+---------------------+----------------------------+------------------+ | | pntRef | pid | | +------------------+---------------------+----------------------------+------------------+ | | featureRef | "feature" + point_name | | +------------------+---------------------+----------------------------+------------------+ | Feature | | | CgPoint | +------------------+---------------------+----------------------------+------------------+ | | name | "feature" + point_name | CgPoint | +------------------+---------------------+----------------------------+------------------+ | Property | | | Feature | +------------------+---------------------+----------------------------+------------------+ | | "attrib" + index | attrib[index] | | +------------------+---------------------+----------------------------+------------------+ | InstrumentSetup | | | Survey | +------------------+---------------------+----------------------------+------------------+ | | id | "setup" + id | | +------------------+---------------------+----------------------------+------------------+ | | stationName | point_name | | +------------------+---------------------+----------------------------+------------------+ | | instrumentHeight | ih | | +------------------+---------------------+----------------------------+------------------+ | | orientationAzimuth | hz0 | | +------------------+---------------------+----------------------------+------------------+ | Feature | | | InstrumentSetup | +------------------+---------------------+----------------------------+------------------+ | | name | "feature" + point_name | CgPoint | +------------------+---------------------+----------------------------+------------------+ | Property | | | Feature | +------------------+---------------------+----------------------------+------------------+ | | "attrib" + index | attrib[index] | | +------------------+---------------------+----------------------------+------------------+ | InstrumentPoint | | instru_x instru_y instru_z | InstrumentSetup | +------------------+---------------------+----------------------------+------------------+ | | pntRef | pid | | +------------------+---------------------+----------------------------+------------------+ | ObservationGroup | | | Survey | +------------------+---------------------+----------------------------+------------------+ | | id | "o" + id | | +------------------+---------------------+----------------------------+------------------+ | | setupID | "setup" + id | | +------------------+---------------------+----------------------------+------------------+ | Backsight | | | ObservationGroup | +------------------+---------------------+----------------------------+------------------+ | | circle | circle | | +------------------+---------------------+----------------------------+------------------+ | BacksightPoint | | back_x back_y back_z | Backsight | +------------------+---------------------+----------------------------+------------------+ | | name | back_name | | +------------------+---------------------+----------------------------+------------------+ | RawObservation | | | ObservationGroup | +------------------+---------------------+----------------------------+------------------+ | | setupID* | "setup" + id | | +------------------+---------------------+----------------------------+------------------+ | | azimuth | azimuth | | +------------------+---------------------+----------------------------+------------------+ | | horizAngle | angle | | +------------------+---------------------+----------------------------+------------------+ | | zenithAngle | z_angle | | +------------------+---------------------+----------------------------+------------------+ | | slopeDistance | dist | | +------------------+---------------------+----------------------------+------------------+ | | horizDistance | dist | | +------------------+---------------------+----------------------------+------------------+ | | targetHeight | th | | +------------------+---------------------+----------------------------+------------------+ | TargetPoint | | x y [z] | RawObservation | +------------------+---------------------+----------------------------+------------------+ | | desc | point_name | | +------------------+---------------------+----------------------------+------------------+ | | pntRef | pid | | +------------------+---------------------+----------------------------+------------------+ | Feature | | | RawObservation | +------------------+---------------------+----------------------------+------------------+ | Property | | | Feature | +------------------+---------------------+----------------------------+------------------+ | | instrumentHeight | ih | | +------------------+---------------------+----------------------------+------------------+ | | edmAccuracyppm | ppm | | +------------------+---------------------+----------------------------+------------------+ | | edmAccuracyConstant | prism_constant | | +------------------+---------------------+----------------------------+------------------+ | | "attrib" + index | attrib[index] | | +------------------+---------------------+----------------------------+------------------+ /* Not implemented Annotations ----------- Units : All angular and direction values default to radians unless otherwise noted. Angular values, expressed in the specified Units.angleUnit are measured counter-clockwise from east=0. Horizontal directions, expressed in the specified Units.directionUnit are measured counter-clockwise from 0 degrees = north. CgPoints : A collection of COGO points. (Cg = COGO = Cordinate Geometry). InstrumentSetup : The Instrument setup location is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute. ObservationGroup : All observations to the same point in a group should be averaged together (they have consistant orientation). TargetPoint : Represents a 2D or 3D location for the target. It is defined by either a coordinate text value ("north east" or "north east elev") or a CgPoint number reference "pntRef" attribute. totalopenstation-0.5.3/docs/requirements.txt000066400000000000000000000000671477035261600213600ustar00rootroot00000000000000Sphinx==8.1.3 pygeoif==0.7 pytest==6.2.5 pyserial==3.5 totalopenstation-0.5.3/docs/users.rst000066400000000000000000000021411477035261600177620ustar00rootroot00000000000000.. _users: ============================= Users of Total Open Station ============================= So far, Total Open Station has been successfully used by: * Università di Siena, Italy `Dipartimento di Archeologia e Storia delle Arti`_, for the excavations at Gortyna and Vignale * `Oxford Archaeology`_, UK, for fieldwork, using the OpenMoko_ mobile platform * `Arke_Geomática`_, Spain has blogged about TOPS * Arc-Team_, Italy, we have added support for the Trimble “area” format after Arc-Team sent us some sample data * Università di Padova, Italy (excavation in Montegrotto) * `Gurob Harem Palace Project`_, Egypt .. _`Dipartimento di Archeologia e Storia delle Arti`: http://www.archeoarti.unisi.it .. _`Oxford Archaeology`: http://thehumanjourney.net/ .. _OpenMoko: http://blogs.thehumanjourney.net/finds/entry/2 .. _Arke_Geomática: http://arkeox.blogspot.com/2008/10/sistemas-electrnicosdigitales-de.html .. _Arc-Team: http://www.arc-team.com/ .. _`Gurob Harem Palace Project`: http://www.gurob.org.uk/ If you're in the number of happy users, let us know. totalopenstation-0.5.3/locale/000077500000000000000000000000001477035261600164005ustar00rootroot00000000000000totalopenstation-0.5.3/locale/de/000077500000000000000000000000001477035261600167705ustar00rootroot00000000000000totalopenstation-0.5.3/locale/de/LC_MESSAGES/000077500000000000000000000000001477035261600205555ustar00rootroot00000000000000totalopenstation-0.5.3/locale/de/LC_MESSAGES/messages.po000066400000000000000000000203751477035261600227330ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # David Tscheppen, 2016 # Stefano Costa , 2013 # Wasilis Mandratzis , 2013 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 14:23+0000\n" "Last-Translator: David Tscheppen\n" "Language-Team: German (http://www.transifex.com/iosa/totalopenstation/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Fehler beim Laden des benötigten Model-Moduls: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "Nutzung: %prog [Option] arg1 [Option] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "Eingabedatei auswählen (nicht für stdin angeben)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "Ausgabedatei auswählen (nicht für stdout angeben) " #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "Eingabeformat auswählen" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "Überschreibe vorhandene Ausgabedatei " #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "Auflisten der verfügbaren Eingabe- und Ausgabeformate" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nFehler:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s ist kein gültiges Eingabeformat" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Bitte geben Sie ein Eingabeformat an" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Keine Eingabedaten!" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Heruntergeladene Daten aus Datei %s gespeichert " #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Heruntergeladene Daten gespeichert in Datei %s, " #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "Überschreiben der vorhandenen Datei " #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Angegebene Ausgabedatei existiert bereits\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nTotal Open Station ist copyright 2008-2015 Luca Bianconi, Stefano Costa\nund IOSA project, unter der GNU GPL v3 oder jeglicher späteren Version.\n\nhttp://tops.iosa.it/\n\nDas Logo der Anwendung ist copyright 2008 Lapo Calamandrei unter der selben\nLizenz." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nDrücken Sie OK um das Herunterladen zu starten.\n\nAbhängig von Ihrem Gerät, müssen Sie eventuell den Transfer vom\n\nMenü Ihrer Totalstation starten." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "Warten auf Daten vom Gerät " #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Verbindung mit den folgenden Parametern initialisiert:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nBeginn des Download-Vorgangs auf dem Gerät.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Drücken Sie OK, wenn Sie fertig sind. " #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Wählen Sie das Ausgabeformat und die Zieldatei" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Ausgabeformat:⏎\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Eingabeformat " #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "Wählen Sie ein Format" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Ausgabeformat" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Importfehler" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Fehler beim Laden des benötigten Eingabemoduls; %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Fehler beim Laden des benötigten Ausgabemoduls: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Keine Ausgabedatei angegeben " #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Keine Verarbeitung der eingegebenen Einstellungen! \n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Fehler" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "Die Verbindung wurde mit der folgenden Fehlermeldung unterbrochen::\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nÜberprüfen Sie Ihre Verbindungsparameter und versuchen Sie es erneut. \n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Abbrechen" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Verbinden" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Prozessdaten" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Beenden" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Datei öffnen" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Rohdaten speichern" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Über TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Port" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Totalstation" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "wählen Sie einen Wert" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Parity Einstellung" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stopp-Bit " #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Time lapse zwischen Datenpaketen" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Willkommen. \nSchalten Sie Ihr Gerät ein. " #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "Warten auf Daten: Bitte starten Sie den Transfer über das Menü der Totalstation." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "%d Bytes heruntergeladen" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Erfolg!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "Herunterladen fertiggestellt!\nEs wurden %d Bytes Daten heruntergeladen." totalopenstation-0.5.3/locale/el/000077500000000000000000000000001477035261600170005ustar00rootroot00000000000000totalopenstation-0.5.3/locale/el/LC_MESSAGES/000077500000000000000000000000001477035261600205655ustar00rootroot00000000000000totalopenstation-0.5.3/locale/el/LC_MESSAGES/messages.po000066400000000000000000000202161477035261600227350ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Stefano Costa , 2013 # Wasilis Mandratzis , 2013 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 09:05+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Greek (http://www.transifex.com/iosa/totalopenstation/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "Χρήση: %prog [επιλογή] arg1 [επιλογή] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "επιλέξτε το αρχείο εισόδου (δεν προσδιορίζει για stdin) " #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "επιλέξτε το αρχείο εξόδου (δεν προσδιορίζει για stdout)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "Επιλέξτε τη μορφή εισόδου " #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "αντικατάσταση υπάρχοντος αρχείου" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Παρακαλώ προσδιορίστε τον τύπο του αρχείου εισόδου" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Τα ληφθέντα δεδομένα αποθηκεύτηκαν στο αρχείο %s," #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Τα ληφθέντα δεδομένα αποθηκεύτηκαν στο αρχείο %s," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "Αντικατάσταση υπάρχοντος αρχείου" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Σφάλμα: Το αρχείο υπάρχει ήδη\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "αναμονή δεδομένων..." #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Η σύνδεση γίνεται με τις ακόλουθες παραμέτρους:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nΞεκινήστε από το όργανο τη διαδικασία αποστολής αρχείου.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Πατήστε ΟΚ όταν ολοκληρωθεί η διαδικασία." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Επιλέξτε τύπο αρχείου και αρχείο προορισμού" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Μορφή εξαγωγής:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Μορφη εισαγωγης" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Δεν καθορίσθηκε αρχείο προορισμού" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Δεν δόθηκαν παράμετροι επεξεργασίας!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Σφάλμα" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "Η επικοινωνία απέτυχε με το ακόλουθο μήνυμα σφάλματος:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nΕλέγξτε τις παραμέτρους επικοινωνίας και δοκιμάστε ξανά.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Ακύρωση" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Σύνδεση" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Τα στοιχεία της διαδικασίας " #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Έξοδος" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Άνοιγμα αρχείου" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Αποθήκευση ανεπεξέργαστων δεδομένων " #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Σχετικά με το TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Θύρα" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Γεωδαιτικός Σταθμός" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "επιλογή τιμής" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Ρύθμιση ισοτιμιας" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stop bit" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Καλωσήρθατε.\nΑνοίξτε το Γεωδαιτικό σταθμό." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/es_ES/000077500000000000000000000000001477035261600173765ustar00rootroot00000000000000totalopenstation-0.5.3/locale/es_ES/LC_MESSAGES/000077500000000000000000000000001477035261600211635ustar00rootroot00000000000000totalopenstation-0.5.3/locale/es_ES/LC_MESSAGES/messages.po000066400000000000000000000142551477035261600233410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Stefano Costa , 2011 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 09:05+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Spanish (Spain) (http://www.transifex.com/iosa/totalopenstation/language/es_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "" #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "" #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "" #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Error" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "" #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/fa/000077500000000000000000000000001477035261600167665ustar00rootroot00000000000000totalopenstation-0.5.3/locale/fa/LC_MESSAGES/000077500000000000000000000000001477035261600205535ustar00rootroot00000000000000totalopenstation-0.5.3/locale/fa/LC_MESSAGES/messages.po000066400000000000000000000174301477035261600227270ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Mohammad Dashtizadeh , 2012 # Seyed Mohammad Hosseini , 2011-2013 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 10:47+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Persian (http://www.transifex.com/iosa/totalopenstation/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "استفاده : %prog [option] arg1 [option] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "فایل ورودی را مشخص کنید (برای stin مشخص نکنید)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "فایل خروجی را مشخص کنید (برای stdout مشخص نکنید)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "انتخاب فرمت ورودی" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "بازنویسی روي فایل خروجی موجود" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "لطفا یک فرمت ورودی را مشخص نماييد" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "اطلاعات بارگیری شده در فایل خروجی %s ذخیره شد." #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "اطلاعات دانلود شده به صورت فايل ذخيره شود %s," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "بازنویسی روي فایل موجود" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "فایل خروجی مشخص شده وجود دارد.\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "انتظار برای اطلاعات از دستگاه" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "اتصال با مقدار اولیه با پیروی از پارامترها:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nروند بارگیری بر روی دستگاه شروع شده است.\n\n\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "هنگامي که انجام شد دکمه OK را بزنيد." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "انتخاب فرمت خورجی و مقصد فایل" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "فرمت خروجی:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "فرمت ورودی" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "هیچ فایل خروجی مشخص نشده" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "تنظیمات پردازشی وارد نشده است!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "خطا" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "اتصال بدلیل مشکلات زیر برقرار نشد:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nپارامترهای اتصال را چک کنید و دوباره امتحان کنید.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "لغو" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "اتصال" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "پردازش اطلاعات" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "خارج شدن" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "باز کردن فایل" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "ذخیره داده های خام" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "درباره TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "درگاه" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "توتال استيشن" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "انتخاب يک مقدار" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "اندازه‌ی بایت" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "تنظیمات توازن" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "ذره‌ی ایست نما" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "خوش آمدید.⏎\nدستگاه را روشن کنید." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/fr/000077500000000000000000000000001477035261600170075ustar00rootroot00000000000000totalopenstation-0.5.3/locale/fr/LC_MESSAGES/000077500000000000000000000000001477035261600205745ustar00rootroot00000000000000totalopenstation-0.5.3/locale/fr/LC_MESSAGES/messages.po000066400000000000000000000123201477035261600227410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: http://bitbucket.org/steko/totalopenstation/issues/\n" "POT-Creation-Date: 2010-02-08 16:07+0100\n" "PO-Revision-Date: 2010-11-30 05:29+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: French (http://www.transifex.com/projects/p/totalopenstation/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../scripts/totalopenstation-cli-parser.py:31 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "" #: ../scripts/totalopenstation-cli-parser.py:39 msgid "select input FILE (do not specify for stdin)" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:46 msgid "select output FILE (do not specify for stdout)" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:53 #: ../scripts/totalopenstation-cli-parser.py:60 msgid "select input FORMAT" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:67 msgid "overwrite existing output file" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:79 #, python-format msgid "" "\n" "Error:\n" "%s\n" "\n" "%s" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:81 msgid "Please specify an input format" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:93 msgid "Please specify an output format" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:117 #, python-format msgid "Downloaded data saved to out file %s" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:121 #, python-format msgid "Downloaded data saved to file %s," msgstr "" #: ../scripts/totalopenstation-cli-parser.py:122 msgid "overwriting the existing file" msgstr "" #: ../scripts/totalopenstation-cli-parser.py:124 msgid "Specified output file already exists\n" msgstr "" #: ../scripts/totalopenstation-gui.py:99 msgid "" "\n" "Total Open Station is copyright 2008-2009 Luca Bianconi, Stefano Costa\n" "and the IOSA project.\n" "\n" "http://tops.berlios.de/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei." msgstr "" #: ../scripts/totalopenstation-gui.py:131 msgid "" "\n" "This dialog will guide you through the download procedure.\n" "\n" "Press OK when finished to proceed." msgstr "" #: ../scripts/totalopenstation-gui.py:164 msgid "waiting for data from device" msgstr "" #: ../scripts/totalopenstation-gui.py:165 msgid "Connection initialized with the following parameters:\n" msgstr "" #: ../scripts/totalopenstation-gui.py:167 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "" #: ../scripts/totalopenstation-gui.py:168 msgid "Press OK when done." msgstr "" #: ../scripts/totalopenstation-gui.py:187 msgid "Choose output format and destination file" msgstr "" #: ../scripts/totalopenstation-gui.py:188 msgid "Output format:\n" msgstr "" #: ../scripts/totalopenstation-gui.py:201 msgid "Data to be processed:\n" msgstr "" #: ../scripts/totalopenstation-gui.py:204 msgid "Input format" msgstr "" #: ../scripts/totalopenstation-gui.py:209 msgid "choose a model" msgstr "" #: ../scripts/totalopenstation-gui.py:245 msgid "Error" msgstr "" #: ../scripts/totalopenstation-gui.py:246 msgid "Connection failed with the following error message:\n" msgstr "" #: ../scripts/totalopenstation-gui.py:247 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "" #: ../scripts/totalopenstation-gui.py:259 msgid "Cancel" msgstr "" #: ../scripts/totalopenstation-gui.py:325 msgid "Port" msgstr "" #: ../scripts/totalopenstation-gui.py:362 msgid "Total Station" msgstr "" #: ../scripts/totalopenstation-gui.py:393 #: ../scripts/totalopenstation-gui.py:418 #: ../scripts/totalopenstation-gui.py:449 #: ../scripts/totalopenstation-gui.py:477 msgid "choose a value" msgstr "" #: ../scripts/totalopenstation-gui.py:412 msgid "Bytesize" msgstr "" #: ../scripts/totalopenstation-gui.py:443 msgid "Parity setting" msgstr "" #: ../scripts/totalopenstation-gui.py:455 msgid "Even" msgstr "" #: ../scripts/totalopenstation-gui.py:458 msgid "None" msgstr "" #: ../scripts/totalopenstation-gui.py:461 msgid "Odd" msgstr "" #: ../scripts/totalopenstation-gui.py:471 msgid "Stop bit" msgstr "" #: ../scripts/totalopenstation-gui.py:513 msgid "Connect" msgstr "" #: ../scripts/totalopenstation-gui.py:522 msgid "Open file" msgstr "" #: ../scripts/totalopenstation-gui.py:530 msgid "Save raw data" msgstr "" #: ../scripts/totalopenstation-gui.py:538 msgid "Process data" msgstr "" #: ../scripts/totalopenstation-gui.py:547 msgid "About TOPS" msgstr "" #: ../scripts/totalopenstation-gui.py:555 msgid "Quit" msgstr "" #: ../scripts/totalopenstation-gui.py:567 msgid "" "Welcome.\n" "Turn your device on." msgstr "" #: ../scripts/totalopenstation-gui.py:669 msgid "The download has started..." msgstr "" #: ../scripts/totalopenstation-gui.py:671 msgid "" "The download has finished.\n" "Press OK to proceed" msgstr "" #: ../scripts/totalopenstation-gui.py:712 msgid "No output file specified" msgstr "" #: ../scripts/totalopenstation-gui.py:713 msgid "No processing settings entered!\n" msgstr "" totalopenstation-0.5.3/locale/hu/000077500000000000000000000000001477035261600170145ustar00rootroot00000000000000totalopenstation-0.5.3/locale/hu/LC_MESSAGES/000077500000000000000000000000001477035261600206015ustar00rootroot00000000000000totalopenstation-0.5.3/locale/hu/LC_MESSAGES/messages.po000066400000000000000000000202031477035261600227450ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Falu , 2017 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-23 16:07+0000\n" "Last-Translator: Falu \n" "Language-Team: Hungarian (http://www.transifex.com/iosa/totalopenstation/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Hiba a szükséges modul betöltése közben: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "használat: %prog [opció] arg1 [opció] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "válassz bemenő FÁJLT (stdin használatához ne add meg)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "válassz kimeneti FÁJLT (stdout használatához ne add meg)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "válaszd ki az input FORMÁTUMOT" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "létező kimeneti fájl felülírása" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "listázza az elérhető bemeneti és kimeneti formátumokat" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nHiba:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s nem érvényes bemeneti formátum" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Kérlek adj meg egy bemeneti formátumot" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Nincs bemenő adat!" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Letöltött adatok %s fájlba mentve" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Letöltött adatok %s fájlba mentve," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "létező fájl felülírása" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "A megadott kimeneti fájl már létezik\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nA Total Open Station Luca Bianconi, Stefano Costa és az IOSA projekt \nGNU GPL v3 vagy bármelyik későbbi licenc alatti védjegye. 2008-2015\n\nhttp://tops.iosa.it/\n\nAz alkalmazás logó Lapo Calamandrei ugyanilyen licencű védjegye 2008." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nNyomj OK-t, ha készen állsz a letöltésre.\n\nEszköztől függően szükség lehet az adatátvitel indítására a \n\nmérőállomás menüjéből." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "várakozás az eszköz adataira" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Kapcsolat létrehozva a következő paraméterekkel:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nLetöltési folyamat indítása az eszközön.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Nyomj OK-t ha befejeződött." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Válaszd ki a cél fájlt és a kimeneti formátumot" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Kimeneti formátum:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Bemeneti formátum" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "válassz formátumot" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Kimeneti formátum" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Importálási hiba" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Hiba a szükséges bemeneti modul betöltése közben: %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Hiba a szükséges kimeneti modul betöltése közben: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Nincs megadva kimeneti fájl" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Nincsenek megadva feldolgozási beállítások!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Hiba" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "Sikertelen kapcsolódás a következő hibaüzenettel:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nEllenőrizd a kapcsolat paramétereit és próbáld újra.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Mégsem" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Kapcsolódás" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Adatfeldolgozás" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Kilépés" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Fájl megnyitás" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Nyers adatok mentése" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "A TOPS névjegye" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Port" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Mérőállomás" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "válassz egy értéket" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Byte méret" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Paritás" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stop bit" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Adatcsomagok közötti késleltetés" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Üdvözlet.\nKapcsold be az eszközt." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "Várakozás az adatokra: kérlek indítsd el az átvitelt a mérőállomás menüjéből." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "%d byte letöltve" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Siker!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "A letöltés befejeződött!\n%d byte adat letöltve." totalopenstation-0.5.3/locale/it/000077500000000000000000000000001477035261600170145ustar00rootroot00000000000000totalopenstation-0.5.3/locale/it/LC_MESSAGES/000077500000000000000000000000001477035261600206015ustar00rootroot00000000000000totalopenstation-0.5.3/locale/it/LC_MESSAGES/messages.po000066400000000000000000000205011477035261600227460ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Stefano Costa , 2015 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 09:05+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Italian (http://www.transifex.com/iosa/totalopenstation/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Errore: impossibile caricare il modulo Python richiesto per il modello: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "utilizzo: %prog [opzione] arg1 [opzione] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "indicare il FILE da leggere (non indicare per leggere dallo standard input)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "indicare il FILE su cui salvare (non indicare per inviare allo standard output)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "indicare il FORMATO del file da aprire" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "sovrascrivere il file di salvataggio" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "elenca i formati supportati in lettura ed esportazione" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nErrore:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s non è un formato valido in lettura" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Indicare un formato per il file da leggere" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Nessun dato da leggere!" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "I dati scaricati sono stati salvati nel file %s" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "I dati scaricati sono stati salvati nel file %s" #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "sovrascrittura del file esistente" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Il file indicato esiste già\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nTotal Open Station © 2008-2015 Stefano Costa, Luca Bianconi e il progetto IOSA, sotto la licenza GNU GPLv3 o versioni successive.\n\nhttp://tops.iosa.it/\n\nLogo di Total Open Station © 2008 Lapo Calamandrei sotto la stessa licenza." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nPremi OK quando sei pronto per scaricare.\n\nIn base al tuo modello di stazione totale, potresti dover avviare il trasferimento dei dati dal\n\nmenu dello strumento." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "in attesa dei dati dallo strumento" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "La connessione è stata avviata con i seguenti parametri:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nAvviare la procedura di download sullo strumento.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Premere OK quando la procedura è completata." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Selezionare un formato di esportazione e un file dove salvare" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Formato di esportazione:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Formato dei dati da leggere" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "scegliere un formato" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Formato di esportazione" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Import error" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Errore nel caricamento del modulo Python richiesto per la lettura: %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Errore nel caricamento del modulo Python richiesto per la scrittura: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Nessun file indicato per l'esportazione" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Non sono stati indicati i parametri per l'esportazione!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Errore" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "La connessione è fallita con il seguente messaggio di errore:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nControllare i parametri di connessione e tentare nuovamente.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Annulla" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Connessione" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Esporta dati" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Esci" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Apri file ..." #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Salva dati grezzi" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Informazioni su TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Porta seriale" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Stazione totale" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "selezionare un valore" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Parità" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stop bit" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Tempo di attesa tra i pacchetti dati" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Benvenuti.\nAccendere lo strumento." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "In attesa dei dati: avvia il trasferimento dal menu della tua stazione totale." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "Ho scaricato %d byte" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Successo!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "Scaricamento completato!\nHai %d byte di dati." totalopenstation-0.5.3/locale/nb_NO/000077500000000000000000000000001477035261600173735ustar00rootroot00000000000000totalopenstation-0.5.3/locale/nb_NO/LC_MESSAGES/000077500000000000000000000000001477035261600211605ustar00rootroot00000000000000totalopenstation-0.5.3/locale/nb_NO/LC_MESSAGES/messages.po000066400000000000000000000176311477035261600233370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Allan Nordhøy , 2017 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-11-21 00:59+0000\n" "Last-Translator: Allan Nordhøy \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/iosa/totalopenstation/language/nb_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb_NO\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Feil ved innlasting av påkrevd modellmodul: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "bruk: %prog [valg] arg1 [valg] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "velg inndata- FILE (ikke angi for stdin)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "velg utdata- FILE (ikke angi for stdout)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "Velg inndata- FORMAT" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "overskrift eksisterende utdatafil" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "liste over tilgjengelige inndata- og utdata-formater" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nFeil:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s er ikke et gyldig inndataformat" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Angi et inndataformat" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Ingen inndata." #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Nedlastet data lagret til utdatafil %s" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Nedlastet data lagret til filen %s," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "overskriver eksisterende fil" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Angitt utdatafil finnes allerede\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nTotal Open Station kopirett © 2008-2015 Luca Bianconi, Stefano Costa\nog IOSA-prosjektet, under GNU GPL v3 eller enhver senere versjon.\n\nhttp://tops.iosa.it/\n\nProgrammets logo, kopirett © 2008 Lapo Calamandrei under samme lisens." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nTrykk OK når du er klart til å laste ned.\n\nAvhengig av enheten din, kan det hende du trenger å starte overføringen fra\n\ntotalstasjonsmenyen." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "venter på data fra enhet" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Tilkobling igangsatt med følgende parameter:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nStart nedlastingsprosedyren fra enheten.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Trykk OK når du er ferdig." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Velg utdataformat og målfil" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Utdataformat:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Inndataformat" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "velg et format" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Utdataformat" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Importeringsfeil" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Feil ved innlasting av påkrevd inndatamodul: %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Feil ved innlasting av påkrevd utdatamodul: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Ingen utdatafil valgt" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Ingen behandlingsinnstillinger oppgitt.\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Feil" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "Tilkoblingen mislyktes med følgende feilmelding:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nSjekk tilkoblingsparameterne og prøv igjen.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Avbryt" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Koble til" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Behandle data" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Avslutt" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Åpne fil" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Lagre rådata" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Om TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Port" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Totalstasjon/elektronisk takymeter" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "Velg en verdi" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytestørrelse" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Paritetsinnstilling" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stoppbit" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Tid mellom datapakker" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Velkomen.\nSkru enheten din på." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "Venter på data: Start overføringen fra din totalstasjons meny." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "Lastet ned %d byte" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Vellykket!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "Nedlasting fullført!\nDu har %d byte med data." totalopenstation-0.5.3/locale/nl_NL/000077500000000000000000000000001477035261600174025ustar00rootroot00000000000000totalopenstation-0.5.3/locale/nl_NL/LC_MESSAGES/000077500000000000000000000000001477035261600211675ustar00rootroot00000000000000totalopenstation-0.5.3/locale/nl_NL/LC_MESSAGES/messages.po000066400000000000000000000142021477035261600233350ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2010-11-30 05:29+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/iosa/totalopenstation/language/nl_NL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "" #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "" #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "" #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "" #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/pl/000077500000000000000000000000001477035261600170135ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pl/LC_MESSAGES/000077500000000000000000000000001477035261600206005ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pl/LC_MESSAGES/messages.po000066400000000000000000000162511477035261600227540ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # filip klosowski , 2013 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 17:09+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Polish (http://www.transifex.com/iosa/totalopenstation/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "stosowanie: %prog [option] arg1 [option] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "wybierz plik wejściowy (nie określaj dla stdin)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "wybierz plik wyjściowy(nie określaj dla stdout)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "wybierz format wejściowy" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "nadpisz plik wyjściowy" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Wybierz format wejsciowy" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Dane zapisano do pliku %s" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Dane zapisano do pliku %s" #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "nadpisać istniejący plik" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Plik o tej nazwie już istnieje\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "czekam na dane z urządzenia" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Połączenie z instrumentem zainicjowano z następującymi parametrami:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nUruchom transmisję w urządzeniu.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Naciśnij OK gdy gotowe." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Wybierz format oraz plik docelowy" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Format wyjściowy:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Format wejściowy" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Nie wybrano pliku wyjściowego" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Nie wybrano ustawień!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Błąd" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "Połączenie z urządzeniem nieudane. Komunikat błędu:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nSprawdź parametry i spróbuj ponownie.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Anuluj" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Połącz" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Przetwarzanie danych" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Zakończ" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Otwórz plik" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Zapisz surowe dane" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "O TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Port" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Total Station" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "wybierz wartość" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Parzystość" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Stop bit" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Witaj.\nWłącz urządzenie." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/pt_BR/000077500000000000000000000000001477035261600174065ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pt_BR/LC_MESSAGES/000077500000000000000000000000001477035261600211735ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pt_BR/LC_MESSAGES/messages.po000066400000000000000000000202241477035261600233420ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Danilo Rodrigues, 2017 # Rui , 2018 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2018-10-03 09:57+0000\n" "Last-Translator: Rui \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/iosa/totalopenstation/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Falha ao carregar o módulo necessário: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "uso: %prog [option] arg1 [option] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "selecione ARQUIVO de entrada (não utilize para stdin)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "selecione ARQUIVO de saída (não utilize stdout)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "selecione o FORMATO de entrada" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "sobrescrevendo arquivo de saída existente" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "listar modos de entrada e saída disponíveis" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nErro:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s não é um formato de entrada válido" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Especifique um formato de entrada" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Entrada vazia!" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Dados obtidos salvos no arquivo de saída em %s" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Dados obtidos salvos no arquivo em %s," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "sobrescrevendo o arquivo existente" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Já existe um arquivo com esse nome\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nO Total Open Station tem Direitos de Autor 2008-2018 Luca Bianconi, Stefano Costa\ne o projeto IOSA, sob a licença GNU GPL v3 ou qualquer versão posterior.\n\nhttp://tops.iosa.it/\n\nO logótipo da aplicação tem Direitos de Autor 2008 Lapo Calamandrei sob a mesma\nlicença." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nClique em OK quando estiver pronto para baixar.\n\nDependendo do dispositivo, você talvez precise iniciar a transferência\n\npelo menu total station." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "aguardando dados do dispositivo" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Conexão inicializada com os seguintes parâmetros:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nIniciar procedimento de download no dispositivo.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Pressione OK quando terminar." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Escolha o formato de saída e arquivo de destino" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Formato de saída:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Formato de entrada" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "Escolha um formato" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Formato de saída" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Erro ao importar" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Falha ao carregar o módulo de entrada necessário: %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Falha ao carregar o módulo de saída necessário: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Arquivo de saída não especificado" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Nenhuma configuração de processamento inserida!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Erro" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "A conexão falhou com o código de erro:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nVerifique os parâmetros de conexão e tente novamente.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Cancelar" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Conectar" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Processar dados" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Sair" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Abrir arquivo" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Salvar dados brutos" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Sobre TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Porta" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Total Station" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "escolha um valor" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Configurações de paridade" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Bit de paragem" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Intervalo de tempo entre dados de pacotes" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Bem-vindo(a).\nLigue seu dispositivo." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "Aguardando dados: por favor inicie a transferência pelo menu total station." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "%d bytes baixados" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Concluído!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "Download concluído!\nVocê tem %d bytes de dados." totalopenstation-0.5.3/locale/pt_PT/000077500000000000000000000000001477035261600174265ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pt_PT/LC_MESSAGES/000077500000000000000000000000001477035261600212135ustar00rootroot00000000000000totalopenstation-0.5.3/locale/pt_PT/LC_MESSAGES/messages.po000066400000000000000000000203451477035261600233660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Rui , 2018 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2018-10-03 09:57+0000\n" "Last-Translator: Rui \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/iosa/totalopenstation/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "Erro ao carregar o módulo necessário: %s" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "utilização: %prog [option] arg1 [option] arg2 ..." #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "selecione FICHEIRO de entrada (não utilize para stdin)" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "selecione FICHEIRO de saída (não utilize stdout)" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "selecione o FORMATO de entrada" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "a gravar por cima do ficheiro de saída existente" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "listar formatos de entrada e saída disponíveis" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "\nErro:\n%(message)s\n\n%(formats)s" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "%s não é um formato de entrada válido" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "Especifique um formato de entrada" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "Sem dados de entrada!" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "Dados descarregados gravados para o ficheiro de saída %s" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "Dados descarregados gravados para o ficheiro %s," #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "a gravar por cima do ficheiro existente" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "Já existe um ficheiro de saída com esse nome\n" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "\nO Total Open Station tem Direitos de Autor 2008-2018 Luca Bianconi, Stefano Costa\ne o projeto IOSA, sob a licença GNU GPL v3 ou qualquer versão posterior.\n\nhttp://tops.iosa.it/\n\nO logótipo da aplicação tem Direitos de Autor 2008 Lapo Calamandrei sob a mesma\nlicença." #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "\nClique em OK quando estiver pronto para descarregar.\n\nDependendo do dispositivo, talvez tenha de iniciar a transferência\n\natravés do menu total station." #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "a aguardar pelos dados do dispositivo" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "Conexão inicializada com os seguintes parâmetros:\n" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "\nIniciar procedimento de descarregamento no dispositivo.\n" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "Pressione OK quando terminar." #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "Escolha o formato de saída e ficheiro de destino" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "Formato de saída:\n" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "Formato de entrada" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "escolha um formato" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "Formato de saída" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "Erro ao importar" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "Falha ao carregar o módulo de entrada necessário: %s" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "Falha ao carregar o módulo de saída necessário: %s" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "Ficheiro de saída não especificado" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "Nenhuma configuração de processamento inserida!\n" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Erro" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "A conexão falhou com o código de erro:\n" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "\nVerifique os parâmetros de conexão e tente novamente.\n" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "Cancelar" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "Conectar" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "Processar dados" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "Sair" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "Abrir ficheiro" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "Gravar dados em bruto" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "Sobre o TOPS" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "Porta" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "Total Station" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "escolha um valor" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "Bytesize" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "Configurações de paridade" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "Bit de paragem" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "Intervalo de tempo entre dados de pacotes" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "Bem-vindo(a).\nLigue o seu dispositivo." #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "A aguardar pelos dados: por favor inicie a transferência pelo menu total station." #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "%d bytes descarregados" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "Concluído!" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "Descarregamento terminado!\nTem %d bytes de dados." totalopenstation-0.5.3/locale/totalopenstation.pot000066400000000000000000000200521477035261600225320ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-26 21:28+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: scripts/totalopenstation-cli-connector.py:37 #: scripts/totalopenstation-cli-parser.py:39 msgid "Usage: %prog [option] arg1 [option] arg2 ..." msgstr "" #: scripts/totalopenstation-cli-connector.py:45 msgid "Select input MODEL" msgstr "" #: scripts/totalopenstation-cli-connector.py:52 msgid "Select input SERIAL PORT" msgstr "" #: scripts/totalopenstation-cli-connector.py:59 #: scripts/totalopenstation-cli-parser.py:54 msgid "Select output FILE (do not specify for stdout)" msgstr "" #: scripts/totalopenstation-cli-connector.py:65 msgid "Please specify your model and the port to download from" msgstr "" #: scripts/totalopenstation-cli-connector.py:77 #: scripts/totalopenstation-gui.py:727 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-connector.py:86 #, python-format msgid "Now you can start download from %s device" msgstr "" #: scripts/totalopenstation-cli-connector.py:90 msgid "Download started..." msgstr "" #: scripts/totalopenstation-cli-connector.py:92 msgid "Download finished..." msgstr "" #: scripts/totalopenstation-cli-connector.py:100 #: scripts/totalopenstation-cli-parser.py:207 #, python-format msgid "Downloaded data saved to out file %s" msgstr "" #: scripts/totalopenstation-cli-connector.py:102 #: scripts/totalopenstation-cli-parser.py:214 msgid "Specified output file already exists\n" msgstr "" #: scripts/totalopenstation-cli-parser.py:47 msgid "Select input FILE (do not specify for stdin)" msgstr "" #: scripts/totalopenstation-cli-parser.py:61 #: scripts/totalopenstation-cli-parser.py:73 msgid "Select input FORMAT" msgstr "" #: scripts/totalopenstation-cli-parser.py:66 msgid "Exclude Z coordinates, output only 2D data" msgstr "" #: scripts/totalopenstation-cli-parser.py:79 msgid "Enhanced parsed file process" msgstr "" #: scripts/totalopenstation-cli-parser.py:85 msgid "Overwrite existing output file" msgstr "" #: scripts/totalopenstation-cli-parser.py:91 msgid "List the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:98 msgid "Minimum log level" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 msgid "Log to file" msgstr "" #: scripts/totalopenstation-cli-parser.py:122 #, python-format msgid "" "List of supported input formats:\n" "%s\n" msgstr "" #: scripts/totalopenstation-cli-parser.py:127 #, python-format msgid "" "List of supported output formats:\n" "%s\n" msgstr "" #: scripts/totalopenstation-cli-parser.py:138 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:145 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:155 msgid "Please specify an input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "%s is not a valid output format" msgstr "" #: scripts/totalopenstation-cli-parser.py:175 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:211 #, python-format msgid "Downloaded data saved to file %s," msgstr "" #: scripts/totalopenstation-cli-parser.py:212 msgid "Overwriting the existing file" msgstr "" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2019 Stefano Costa, Damien\n" "Gaignon, Luca Bianconi and the IOSA project, under the GNU GPL v3\n" "or any later version.\n" "\n" "https://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:155 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:177 msgid "Waiting for data from device" msgstr "" #: scripts/totalopenstation-gui.py:178 msgid "Connection initialized with the following parameters:\n" msgstr "" #: scripts/totalopenstation-gui.py:180 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "" #: scripts/totalopenstation-gui.py:181 msgid "Press OK when done." msgstr "" #: scripts/totalopenstation-gui.py:200 msgid "Choose output format and destination file" msgstr "" #: scripts/totalopenstation-gui.py:201 msgid "Output format:\n" msgstr "" #: scripts/totalopenstation-gui.py:223 msgid "Input format" msgstr "" #: scripts/totalopenstation-gui.py:228 scripts/totalopenstation-gui.py:247 msgid "Choose a format" msgstr "" #: scripts/totalopenstation-gui.py:242 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:281 scripts/totalopenstation-gui.py:294 #: scripts/totalopenstation-gui.py:726 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:282 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:295 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:306 msgid "No output file specified" msgstr "" #: scripts/totalopenstation-gui.py:307 msgid "No processing settings entered!\n" msgstr "" #: scripts/totalopenstation-gui.py:324 msgid "Error" msgstr "" #: scripts/totalopenstation-gui.py:325 msgid "Connection failed with the following error message:\n" msgstr "" #: scripts/totalopenstation-gui.py:326 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "" #: scripts/totalopenstation-gui.py:338 msgid "Cancel" msgstr "" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:619 msgid "Connect" msgstr "" #: scripts/totalopenstation-gui.py:374 scripts/totalopenstation-gui.py:635 msgid "Process data" msgstr "" #: scripts/totalopenstation-gui.py:376 scripts/totalopenstation-gui.py:675 msgid "Quit" msgstr "" #: scripts/totalopenstation-gui.py:379 msgid "Open file" msgstr "" #: scripts/totalopenstation-gui.py:380 scripts/totalopenstation-gui.py:627 msgid "Save raw data" msgstr "" #: scripts/totalopenstation-gui.py:383 msgid "About TOPS" msgstr "" #: scripts/totalopenstation-gui.py:391 msgid "File" msgstr "" #: scripts/totalopenstation-gui.py:393 msgid "Help" msgstr "" #: scripts/totalopenstation-gui.py:434 msgid "Port" msgstr "" #: scripts/totalopenstation-gui.py:472 msgid "Total Station" msgstr "" #: scripts/totalopenstation-gui.py:481 msgid "Choose a model" msgstr "" #: scripts/totalopenstation-gui.py:501 msgid "Baudrate" msgstr "" #: scripts/totalopenstation-gui.py:515 scripts/totalopenstation-gui.py:540 #: scripts/totalopenstation-gui.py:563 scripts/totalopenstation-gui.py:586 msgid "Choose a value" msgstr "" #: scripts/totalopenstation-gui.py:534 msgid "Bytesize" msgstr "" #: scripts/totalopenstation-gui.py:557 msgid "Parity setting" msgstr "" #: scripts/totalopenstation-gui.py:580 msgid "Stop bit" msgstr "" #: scripts/totalopenstation-gui.py:603 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:643 msgid "Welcome to Total Open Station" msgstr "" #: scripts/totalopenstation-gui.py:651 msgid "" "Welcome.\n" "Turn your device on." msgstr "" #: scripts/totalopenstation-gui.py:675 msgid "Do you really want to quit application ?" msgstr "" #: scripts/totalopenstation-gui.py:740 msgid "" "Waiting for data: Please start the transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:751 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:755 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:756 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/locale/tr/000077500000000000000000000000001477035261600170255ustar00rootroot00000000000000totalopenstation-0.5.3/locale/tr/LC_MESSAGES/000077500000000000000000000000001477035261600206125ustar00rootroot00000000000000totalopenstation-0.5.3/locale/tr/LC_MESSAGES/messages.po000066400000000000000000000142351477035261600227660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Stefano Costa # This file is distributed under the same license as the PACKAGE package. # # Translators: # Stefano Costa , 2011 msgid "" msgstr "" "Project-Id-Version: Total Open Station\n" "Report-Msgid-Bugs-To: info@iosa.it\n" "POT-Creation-Date: 2015-02-28 22:54+0100\n" "PO-Revision-Date: 2017-09-19 09:05+0000\n" "Last-Translator: Stefano Costa \n" "Language-Team: Turkish (http://www.transifex.com/iosa/totalopenstation/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: scripts/totalopenstation-cli-connector.py:70 #: scripts/totalopenstation-gui.py:726 #, python-format msgid "Error loading the required model module: %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:36 msgid "usage: %prog [option] arg1 [option] arg2 ..." msgstr "" #: scripts/totalopenstation-cli-parser.py:44 msgid "select input FILE (do not specify for stdin)" msgstr "" #: scripts/totalopenstation-cli-parser.py:51 msgid "select output FILE (do not specify for stdout)" msgstr "" #: scripts/totalopenstation-cli-parser.py:58 #: scripts/totalopenstation-cli-parser.py:65 msgid "select input FORMAT" msgstr "" #: scripts/totalopenstation-cli-parser.py:72 msgid "overwrite existing output file" msgstr "" #: scripts/totalopenstation-cli-parser.py:78 msgid "list the available input and output formats" msgstr "" #: scripts/totalopenstation-cli-parser.py:104 #, python-format msgid "" "\n" "Error:\n" "%(message)s\n" "\n" "%(formats)s" msgstr "" #: scripts/totalopenstation-cli-parser.py:111 #, python-format msgid "%s is not a valid input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:121 msgid "Please specify an input format" msgstr "" #: scripts/totalopenstation-cli-parser.py:141 msgid "No input data!" msgstr "" #: scripts/totalopenstation-cli-parser.py:161 #, python-format msgid "Downloaded data saved to out file %s" msgstr "" #: scripts/totalopenstation-cli-parser.py:165 #, python-format msgid "Downloaded data saved to file %s," msgstr "" #: scripts/totalopenstation-cli-parser.py:166 msgid "overwriting the existing file" msgstr "" #: scripts/totalopenstation-cli-parser.py:168 msgid "Specified output file already exists\n" msgstr "" #: scripts/totalopenstation-gui.py:121 msgid "" "\n" "Total Open Station is copyright 2008-2015 Luca Bianconi, Stefano Costa\n" "and the IOSA project, under the GNU GPL v3 or any later version.\n" "\n" "http://tops.iosa.it/\n" "\n" "The application logo is copyright 2008 Lapo Calamandrei under the same\n" "license." msgstr "" #: scripts/totalopenstation-gui.py:154 msgid "" "\n" "Press OK when you're ready to download.\n" "\n" "Depending on your device, you may need to start the transfer from\n" "\n" "the total station menu." msgstr "" #: scripts/totalopenstation-gui.py:176 msgid "waiting for data from device" msgstr "" #: scripts/totalopenstation-gui.py:177 msgid "Connection initialized with the following parameters:\n" msgstr "" #: scripts/totalopenstation-gui.py:179 msgid "" "\n" "Start the download procedure on the device.\n" msgstr "" #: scripts/totalopenstation-gui.py:180 msgid "Press OK when done." msgstr "" #: scripts/totalopenstation-gui.py:199 msgid "Choose output format and destination file" msgstr "" #: scripts/totalopenstation-gui.py:200 msgid "Output format:\n" msgstr "" #: scripts/totalopenstation-gui.py:222 msgid "Input format" msgstr "" #: scripts/totalopenstation-gui.py:227 scripts/totalopenstation-gui.py:246 msgid "choose a format" msgstr "" #: scripts/totalopenstation-gui.py:241 msgid "Output format" msgstr "" #: scripts/totalopenstation-gui.py:280 scripts/totalopenstation-gui.py:293 #: scripts/totalopenstation-gui.py:725 msgid "Import error" msgstr "" #: scripts/totalopenstation-gui.py:281 #, python-format msgid "Error loading the required input module: %s" msgstr "" #: scripts/totalopenstation-gui.py:294 #, python-format msgid "Error loading the required output module: %s" msgstr "" #: scripts/totalopenstation-gui.py:305 msgid "No output file specified" msgstr "" #: scripts/totalopenstation-gui.py:306 msgid "No processing settings entered!\n" msgstr "" #: scripts/totalopenstation-gui.py:323 msgid "Error" msgstr "Hata" #: scripts/totalopenstation-gui.py:324 msgid "Connection failed with the following error message:\n" msgstr "" #: scripts/totalopenstation-gui.py:325 msgid "" "\n" "Check your connection parameters and try again.\n" msgstr "" #: scripts/totalopenstation-gui.py:337 msgid "Cancel" msgstr "" #: scripts/totalopenstation-gui.py:372 scripts/totalopenstation-gui.py:618 msgid "Connect" msgstr "" #: scripts/totalopenstation-gui.py:373 scripts/totalopenstation-gui.py:634 msgid "Process data" msgstr "" #: scripts/totalopenstation-gui.py:375 msgid "Quit" msgstr "" #: scripts/totalopenstation-gui.py:378 msgid "Open file" msgstr "" #: scripts/totalopenstation-gui.py:379 scripts/totalopenstation-gui.py:626 msgid "Save raw data" msgstr "" #: scripts/totalopenstation-gui.py:382 msgid "About TOPS" msgstr "" #: scripts/totalopenstation-gui.py:433 msgid "Port" msgstr "" #: scripts/totalopenstation-gui.py:471 msgid "Total Station" msgstr "" #: scripts/totalopenstation-gui.py:514 scripts/totalopenstation-gui.py:539 #: scripts/totalopenstation-gui.py:562 scripts/totalopenstation-gui.py:585 msgid "choose a value" msgstr "" #: scripts/totalopenstation-gui.py:533 msgid "Bytesize" msgstr "" #: scripts/totalopenstation-gui.py:556 msgid "Parity setting" msgstr "" #: scripts/totalopenstation-gui.py:579 msgid "Stop bit" msgstr "" #: scripts/totalopenstation-gui.py:602 msgid "Time lapse between data packets" msgstr "" #: scripts/totalopenstation-gui.py:650 msgid "" "Welcome.\n" "Turn your device on." msgstr "" #: scripts/totalopenstation-gui.py:739 msgid "Waiting for data: please start transfer from your total station menu." msgstr "" #: scripts/totalopenstation-gui.py:750 #, python-format msgid "Downloaded %d bytes" msgstr "" #: scripts/totalopenstation-gui.py:754 msgid "Success!" msgstr "" #: scripts/totalopenstation-gui.py:755 #, python-format msgid "" "Download finished!\n" "You have %d bytes of data." msgstr "" totalopenstation-0.5.3/sample_data/000077500000000000000000000000001477035261600174135ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/carlson_rw5/000077500000000000000000000000001477035261600216515ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/carlson_rw5/Leica1200.rw5000066400000000000000000000022231477035261600236270ustar00rootroot00000000000000-- TPS1200 RW5 format file -- Version 1.35 July 20 2004 Leica Geosystems JB,NMMY RW5 JOB,DT07-22-2004,TM13:13:51 MO,AD0,UN0,SF1.00000000,EC1,EO0.0,AU0 --SP,PN111,N 16556174.237,E 942130.662,EL 16.404 --SP,PN108,N 16556174.237,E 942130.662,EL 17.945 OC,OP111,N 16556174.237,E 942130.662,EL 16.404 BK,OP111,BP108,BS0.00000,BC0.00000 LS,HI5.684,HR5.500 SS,OP111,FP108,AR0.00000,ZE0.00017,SD3.3566,--FENCE1 LS,HI3.684,HR5.500 SS,OP111,FP101,AR55.05521,ZE0.00014,SD3.3566,--LIGHT POLE --BEG LS,HI3.684,HR5.500 SS,OP111,FP102,AR55.05517,ZE0.00010,SD3.3566,--FENCE1 LS,HI3.684,HR5.500 SS,OP111,FP103,AR55.05513,ZE0.00017,SD3.3566,--FENCE LS,HI3.684,HR5.500 SS,OP111,FP104,AR55.05513,ZE0.00017,SD3.3566,--FENCE --BEG LS,HI3.684,HR5.500 SS,OP111,FP105,AR55.05521,ZE0.00014,SD3.3566,--EP1 LS,HI3.684,HR5.500 SS,OP111,FP106,AR55.05513,ZE0.00017,SD3.3566,--EP LS,HI3.684,HR5.500 SS,OP111,FP107,AR55.05521,ZE0.00014,SD3.3566,--EP --END LS,HI3.684,HR5.500 SS,OP111,FP108,AR55.05521,ZE0.00014,SD3.3566,--FENCE1 LS,HI3.684,HR5.500 SS,OP111,FP109,AR55.05513,ZE0.00017,SD3.3566,--FENCE --JFS totalopenstation-0.5.3/sample_data/carlson_rw5/Leica1200.rw5.csv000066400000000000000000000013741477035261600244270ustar00rootroot00000000000000Rec_Desc Rec_Type Point ID Description Inst_Height_ Rod Height Horiz_ Angle Vert_ Angle Slope Dist Local_N Local_E Local_Z PC EDM Mode SF Side Shot SS 108 FENCE1 5500 0 0.000525 3.3566 16556174237 942130662 16404 Side Shot SS 101 LIGHT POLE 5500 61.219784 0.000432 3.3566 Side Shot SS 102 FENCE1 5500 61.21966 0.000309 3.3566 Side Shot SS 103 FENCE 5500 61.219537 0.000525 3.3566 Side Shot SS 104 FENCE 5500 61.219537 0.000525 3.3566 Side Shot SS 105 EP1 5500 61.219784 0.000432 3.3566 Side Shot SS 106 EP 5500 61.219537 0.000525 3.3566 Side Shot SS 107 EP 5500 61.219784 0.000432 3.3566 Side Shot SS 108 FENCE1 5500 61.219784 0.000432 3.3566 Side Shot SS 109 FENCE 5500 61.219537 0.000525 3.3566 totalopenstation-0.5.3/sample_data/carlson_rw5/Trav_19leg.rw5000066400000000000000000001630501477035261600242320ustar00rootroot00000000000000--JB,NMsurf 26130,DT01-16-1998,TM04:33:09 --MO,AD0,UN2,SF1.00000000,EC0,EO0.0,AU0 --SurvCE Version 1.61.01 --CRD: Alphanumeric --Equipment: Leica TPS Series --TS Scale: 1.00000000 --EDM Mode: Standard --Start 104 // End 1093 // Ref Close Point = 104 --Ang Bal = 1087 to 1093 // Ref Ang = 103 to 104 SP,PN103,N 50000.0000,E 20000.0000,EL500.0000,--TPT.,5/8"IRW/ALUM.CAP SP,PN104,N 50000.0000,E 21085.8600,EL0.0000,--TPT.,5/8"IRW/ALUM.CAP --P.C. mm Applied: 0.0000 OC,OP104,N 50000.00000,E 21085.86000,EL0.000,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.690 BK,OP104,BP103,BS,BC0.0000 BD,OP104,FP103,AR0.0000,ZE90.5410,SD1085.996,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD1085.860, Z500.000 --Measured: AR000'00", HD1085.861, Z-17.471 --Delta: AR000'00", HD0.001, Z-517.471 SS,OP104,FP1000,AR359.5959,ZE90.5404,SD1085.996,--CK.,BS --DT01-16-1998 --TM04:43:54 --SP104,N 50000.0000,E 21085.8600,EL482.5610,--TPT.,5/8"IRW/ALUM.CAP --SP104,N 50000.0000,E 21085.8600,EL517.4390,--TPT.,5/8"IRW/ALUM.CAP OC,OP104,N 50000.00000,E 21085.86000,EL517.439,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.690 BK,OP104,BP103,BS,BC0.0000 BD,OP104,FP103,AR0.0000,ZE90.5416,SD1085.995,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD1085.860, Z500.000 --Measured: AR000'00", HD1085.860, Z499.937 --Delta: AR000'00", HD-0.000, Z-0.063 SS,OP104,FP1001,AR359.5959,ZE90.5415,SD1085.994,--CK.,BS --DT01-16-1998 --TM04:52:13 --Set Collection with Obs Order 123...321... OC,OP104,N 50000.00000,E 21085.86000,EL517.439,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.690 BK,OP104,BP103,BS,BC0.0000 --DT01-16-1998 --TM05:00:45 LS,HI5.330,HR5.690 BD,OP104,FP103,AR0.0000,ZE90.5408,SD1085.995,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.630 FD,OP104,FP105,AR189.1420,ZE89.2229,SD619.476,--TPT.,5/8"IRW/P-CAP FR,OP104,FP105,AR9.1418,ZE270.3719,SD619.474,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.690 BR,OP104,FP103,AR179.5958,ZE269.0541,SD1085.995,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.690 BD,OP104,FP103,AR0.0003,ZE90.5407,SD1085.994,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.630 FD,OP104,FP105,AR189.1420,ZE89.2228,SD619.473,--TPT.,5/8"IRW/P-CAP FR,OP104,FP105,AR9.1419,ZE270.3715,SD619.473,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.690 BR,OP104,FP103,AR179.5957,ZE269.0538,SD1085.995,--TPT.,5/8"IRW/ALUM.CAP --SS,OP104,FP103,AR0.0000,ZE90.5414,SD1085.995000,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.330000,HR5.630000 --SS,OP104,FP105,AR189.1420,ZE89.2236,SD619.474208,--TPT.,5/8"IRW/P-CAP --LS,HI5.330000,HR5.690000 SS,OP104,FP1002,AR359.5959,ZE90.5410,SD1085.995,--CK.,BS --DT01-16-1998 --TM05:03:43 OC,OP104,N 50000.00000,E 21085.86000,EL517.439,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.630 BK,OP104,BP105,BS,BC0.0000 BD,OP104,FP105,AR0.0000,ZE89.2228,SD619.473,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD619.438, Z523.879 --Measured: AR000'00", HD619.436, Z523.902 --Delta: AR000'00", HD-0.001, Z0.023 LS,HI5.330,HR5.690 SS,OP104,FP1003,AR0.0000,ZE89.2226,SD619.473,--CK.,BS --DT01-16-1998 --TM05:06:46 --Set Collection with Obs Order 123...321... OC,OP104,N 50000.00000,E 21085.86000,EL517.439,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.330,HR5.630 BK,OP104,BP105,BS,BC0.0000 --DT01-16-1998 --TM05:15:37 LS,HI5.330,HR5.630 BD,OP104,FP105,AR0.0000,ZE89.2228,SD619.473,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.690 FD,OP104,FP1004,AR170.4540,ZE90.5406,SD1085.996,--CK.,103 FR,OP104,FP1004,AR350.4537,ZE269.0540,SD1085.996,--CK.,103 LS,HI5.330,HR5.630 BR,OP104,FP105,AR179.5959,ZE270.3718,SD619.473,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.630 BD,OP104,FP105,AR0.0000,ZE89.2234,SD619.473,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.690 FD,OP104,FP1004,AR170.4538,ZE90.5409,SD1085.995,--CK.,103 FR,OP104,FP1004,AR350.4540,ZE269.0542,SD1085.995,--CK.,103 LS,HI5.330,HR5.630 BR,OP104,FP105,AR179.5958,ZE270.3723,SD619.473,--TPT.,5/8"IRW/P-CAP --SS,OP104,FP105,AR0.0000,ZE89.2235,SD619.473125,--TPT.,5/8"IRW/P-CAP --LS,HI5.330000,HR5.690000 --SS,OP104,FP1004,AR170.4540,ZE90.5413,SD1085.995125,--CK.,103 --LS,HI5.330000,HR5.630000 SS,OP104,FP1005,AR0.0001,ZE89.2242,SD619.473,--CK.,BS --DT01-16-1998 --TM05:19:16 OC,OP105,N 49900.54933,E 21697.26202,EL523.879,--TPT.,5/8"IRW/P-CAP LS,HI5.630,HR5.330 BK,OP105,BP104,BS,BC0.0000 BD,OP105,FP104,AR0.0000,ZE90.3729,SD619.472,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD619.438, Z517.439 --Measured: AR000'00", HD619.435, Z517.425 --Delta: AR000'00", HD-0.002, Z-0.014 SS,OP105,FP1006,AR0.0000,ZE90.3734,SD619.474,--CK.,BS --DT01-16-1998 --TM05:38:44 --Set Collection with Obs Order 123...321... OC,OP105,N 49900.54933,E 21697.26202,EL523.879,--TPT.,5/8"IRW/P-CAP LS,HI5.630,HR5.330 BK,OP105,BP104,BS,BC0.0000 --DT01-16-1998 --TM05:56:19 LS,HI5.630,HR5.330 BD,OP105,FP104,AR0.0000,ZE90.3734,SD619.472,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.500 FD,OP105,FP106,AR348.4637,ZE90.3459,SD746.743,--TPT.,5/8"IRW/ALUM.CAP FR,OP105,FP106,AR168.4639,ZE269.2450,SD746.744,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.330 BR,OP105,FP104,AR179.5959,ZE269.2218,SD619.471,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.330 BD,OP105,FP104,AR359.5958,ZE90.3728,SD619.472,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.500 FD,OP105,FP106,AR348.4636,ZE90.3501,SD746.743,--TPT.,5/8"IRW/ALUM.CAP FR,OP105,FP106,AR168.4648,ZE269.2452,SD746.743,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.330 BR,OP105,FP104,AR179.5959,ZE269.2225,SD619.473,--TPT.,5/8"IRW/ALUM.CAP --Warning: Horizontal Angles to foresight differ by 000'11". --SS,OP105,FP104,AR0.0000,ZE90.3735,SD619.471833,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.630000,HR5.500000 --SS,OP105,FP106,AR348.4641,ZE90.3505,SD746.743250,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.630000,HR5.330000 SS,OP105,FP1007,AR359.5956,ZE90.3730,SD619.472,--CK.,BS --DT01-16-1998 --TM05:57:58 OC,OP105,N 49900.54933,E 21697.26202,EL523.879,--TPT.,5/8"IRW/P-CAP LS,HI5.630,HR5.500 BK,OP105,BP106,BS,BC0.0000 BD,OP105,FP106,AR0.0000,ZE90.3500,SD746.744,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD746.704, Z516.390 --Measured: AR000'00", HD746.705, Z516.407 --Delta: AR000'00", HD0.001, Z0.016 LS,HI5.630,HR5.330 SS,OP105,FP1008,AR0.0000,ZE90.3504,SD746.743,--CK.,BS --DT01-16-1998 --TM06:02:06 --Set Collection with Obs Order 123...321... OC,OP105,N 49900.54933,E 21697.26202,EL523.879,--TPT.,5/8"IRW/P-CAP LS,HI5.630,HR5.500 BK,OP105,BP106,BS,BC0.0000 --DT01-16-1998 --TM06:08:26 LS,HI5.630,HR5.500 BD,OP105,FP106,AR0.0000,ZE90.3506,SD746.744,--TPT.,5/8"IRW/ALUM.CAP FD,OP105,FP1009,AR11.1317,ZE90.3719,SD619.472,--CK.,104 FR,OP105,FP1009,AR191.1314,ZE269.2221,SD619.472,--CK.,104 BR,OP105,FP106,AR179.5953,ZE269.2449,SD746.744,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.500 BD,OP105,FP106,AR359.5948,ZE90.3501,SD746.744,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.630,HR5.330 FD,OP105,FP1009,AR11.1308,ZE90.3724,SD619.472,--CK.,104 FR,OP105,FP1009,AR191.1304,ZE269.2224,SD619.472,--CK.,104 LS,HI5.630,HR5.500 BR,OP105,FP106,AR179.5945,ZE269.2449,SD746.744,--TPT.,5/8"IRW/ALUM.CAP --SS,OP105,FP106,AR0.0000,ZE90.3507,SD746.744167,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.630000,HR5.330000 --SS,OP105,FP1009,AR11.1319,ZE90.3730,SD619.472167,--CK.,104 --LS,HI5.630000,HR5.500000 SS,OP105,FP1010,AR359.5944,ZE90.3500,SD746.743,--CK.,BS --DT01-16-1998 --TM06:09:46 OC,OP106,N 49874.70981,E 20951.00485,EL516.390,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 BK,OP106,BP105,BS,BC0.0000 BD,OP106,FP105,AR0.0000,ZE89.2455,SD746.741,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD746.704, Z523.879 --Measured: AR000'00", HD746.702, Z523.881 --Delta: AR000'00", HD-0.002, Z0.002 SS,OP106,FP1011,AR0.0001,ZE89.2459,SD746.742,--CK.,BS --DT01-16-1998 --TM07:06:49 OC,OP106,N 49874.70981,E 20951.00485,EL516.390,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 BK,OP106,BP105,BS,BC0.0000 BD,OP106,FP105,AR0.0000,ZE89.2459,SD746.742,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD746.704, Z523.879 --Measured: AR000'00", HD746.703, Z523.867 --Delta: AR000'00", HD-0.001, Z-0.013 --Set Collection with Obs Order 123...321... OC,OP106,N 49874.70981,E 20951.00485,EL516.390,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 BK,OP106,BP105,BS,BC0.0000 --DT01-16-1998 --TM07:16:26 LS,HI5.500,HR5.630 BD,OP106,FP105,AR0.0000,ZE89.2459,SD746.742,--TPT.,5/8"IRW/P-CAP LS,HI5.500,HR5.450 FD,OP106,FP107,AR182.5119,ZE90.5418,SD990.120,--TPT.,5/8"IRW/ALUM.CAP FR,OP106,FP107,AR2.5124,ZE269.0525,SD990.121,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 BR,OP106,FP105,AR180.0003,ZE270.3447,SD746.743,--TPT.,5/8"IRW/P-CAP LS,HI5.500,HR5.630 BD,OP106,FP105,AR0.0004,ZE89.2459,SD746.742,--TPT.,5/8"IRW/P-CAP LS,HI5.500,HR5.450 FD,OP106,FP107,AR182.5120,ZE90.5413,SD990.121,--TPT.,5/8"IRW/ALUM.CAP FR,OP106,FP107,AR2.5126,ZE269.0530,SD990.122,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 BR,OP106,FP105,AR180.0000,ZE270.3449,SD746.743,--TPT.,5/8"IRW/P-CAP --Warning: Horizontal Angles to foresight differ by 000'10". --SS,OP106,FP105,AR0.0000,ZE89.2505,SD746.742667,--TPT.,5/8"IRW/P-CAP --LS,HI5.500000,HR5.450000 --SS,OP106,FP107,AR182.5121,ZE90.5424,SD990.120833,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.500000,HR5.630000 SS,OP106,FP1012,AR359.5958,ZE89.2459,SD746.742,--CK.,BS --DT01-16-1998 --TM07:18:12 OC,OP106,N 49874.70981,E 20951.00485,EL516.390,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.450 BK,OP106,BP107,BS,BC0.0000 BD,OP106,FP107,AR0.0000,ZE90.5411,SD990.121,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD989.997, Z500.774 --Measured: AR000'00", HD989.998, Z500.836 --Delta: AR000'00", HD0.001, Z0.062 SS,OP106,FP1013,AR0.0000,ZE90.5412,SD990.122,--CK.,BS --DT01-16-1998 --TM07:23:29 --Set Collection with Obs Order 123...321... OC,OP106,N 49874.70981,E 20951.00485,EL516.390,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.450 BK,OP106,BP107,BS,BC0.0000 --DT01-16-1998 --TM07:30:21 LS,HI5.500,HR5.450 BD,OP106,FP107,AR0.0000,ZE90.5418,SD990.120,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 FD,OP106,FP1014,AR177.0842,ZE89.2500,SD746.744,--CK.,105 FR,OP106,FP1014,AR357.0842,ZE270.3446,SD746.742,--CK.,105 LS,HI5.500,HR5.450 BR,OP106,FP107,AR179.5959,ZE269.0528,SD990.121,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.450 BD,OP106,FP107,AR0.0003,ZE90.5415,SD990.120,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.500,HR5.630 FD,OP106,FP1014,AR177.0844,ZE89.2458,SD746.742,--CK.,105 FR,OP106,FP1014,AR357.0842,ZE270.3444,SD746.743,--CK.,105 LS,HI5.500,HR5.450 BR,OP106,FP107,AR180.0000,ZE269.0532,SD990.121,--TPT.,5/8"IRW/ALUM.CAP --SS,OP106,FP107,AR0.0000,ZE90.5423,SD990.120458,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.500000,HR5.630000 --SS,OP106,FP1014,AR177.0842,ZE89.2507,SD746.742625,--CK.,105 --LS,HI5.500000,HR5.450000 SS,OP106,FP1015,AR0.0001,ZE90.5413,SD990.121,--CK.,BS --DT01-16-1998 --TM07:31:48 OC,OP107,N 49889.78690,E 19961.12279,EL500.774,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.500 BK,OP107,BP106,BS,BC0.0000 BD,OP107,FP106,AR0.0000,ZE89.0545,SD990.119,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD989.997, Z516.390 --Measured: AR000'00", HD989.996, Z516.348 --Delta: AR000'00", HD-0.001, Z-0.043 SS,OP107,FP1016,AR359.5959,ZE89.0542,SD990.120,--CK.,BS --DT01-16-1998 --TM08:01:38 --Set Collection with Obs Order 123...321... OC,OP107,N 49889.78690,E 19961.12279,EL500.774,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.500 BK,OP107,BP106,BS,BC0.0000 --DT01-16-1998 --TM08:31:50 LS,HI5.450,HR5.500 BD,OP107,FP106,AR0.0000,ZE89.0604,SD990.119,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.430 FD,OP107,FP108,AR110.1447,ZE90.5515,SD903.423,--TPT.,1/2"IRW/P-CAP FR,OP107,FP108,AR290.1446,ZE269.0433,SD903.423,--TPT.,1/2"IRW/P-CAP LS,HI5.450,HR5.500 BR,OP107,FP106,AR179.5958,ZE270.5350,SD990.119,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.500 BD,OP107,FP106,AR359.5957,ZE89.0556,SD990.119,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.430 FD,OP107,FP108,AR110.1445,ZE90.5524,SD903.423,--TPT.,1/2"IRW/P-CAP FR,OP107,FP108,AR290.1444,ZE269.0434,SD903.423,--TPT.,1/2"IRW/P-CAP LS,HI5.450,HR5.500 BR,OP107,FP106,AR179.5958,ZE270.5347,SD990.119,--TPT.,5/8"IRW/ALUM.CAP --SS,OP107,FP106,AR0.0000,ZE89.0606,SD990.119000,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.450000,HR5.430000 --SS,OP107,FP108,AR110.1447,ZE90.5523,SD903.422917,--TPT.,1/2"IRW/P-CAP --LS,HI5.450000,HR5.500000 SS,OP107,FP1017,AR359.5954,ZE89.0602,SD990.119,--CK.,BS --DT01-16-1998 --TM08:34:25 OC,OP107,N 49889.78690,E 19961.12279,EL500.774,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.430 BK,OP107,BP108,BS,BC0.0000 BD,OP107,FP108,AR0.0000,ZE90.5525,SD903.422,--TPT.,1/2"IRW/P-CAP --Calculated: AR000'00", HD903.306, Z486.240 --Measured: AR000'00", HD903.305, Z486.231 --Delta: AR000'00", HD-0.001, Z-0.009 SS,OP107,FP1018,AR0.0003,ZE90.5529,SD903.425,--CK.,BS --DT01-16-1998 --TM08:37:57 --Set Collection with Obs Order 123...321... OC,OP107,N 49889.78690,E 19961.12279,EL500.774,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.450,HR5.430 BK,OP107,BP108,BS,BC0.0000 --DT01-16-1998 --TM08:45:02 LS,HI5.450,HR5.430 BD,OP107,FP108,AR0.0000,ZE90.5521,SD903.423,--TPT.,1/2"IRW/P-CAP LS,HI5.450,HR5.500 FD,OP107,FP1019,AR249.4510,ZE89.0600,SD990.119,--CK.,106 FR,OP107,FP1019,AR69.4507,ZE270.5340,SD990.119,--CK.,106 LS,HI5.450,HR5.430 BR,OP107,FP108,AR179.5953,ZE269.0431,SD903.423,--TPT.,1/2"IRW/P-CAP LS,HI5.450,HR5.430 BD,OP107,FP108,AR359.5958,ZE90.5521,SD903.422,--TPT.,1/2"IRW/P-CAP LS,HI5.450,HR5.500 FD,OP107,FP1019,AR249.4505,ZE89.0559,SD990.119,--CK.,106 FR,OP107,FP1019,AR69.4503,ZE270.5351,SD990.118,--CK.,106 LS,HI5.450,HR5.430 BR,OP107,FP108,AR179.5955,ZE269.0428,SD903.422,--TPT.,1/2"IRW/P-CAP --SS,OP107,FP108,AR0.0000,ZE90.5526,SD903.422250,--TPT.,1/2"IRW/P-CAP --LS,HI5.450000,HR5.500000 --SS,OP107,FP1019,AR249.4510,ZE89.0607,SD990.118583,--CK.,106 --LS,HI5.450000,HR5.430000 SS,OP107,FP1020,AR359.5958,ZE90.5518,SD903.422,--CK.,BS --DT01-16-1998 --TM08:46:26 OC,OP108,N 49047.15278,E 19635.65561,EL486.240,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 BK,OP108,BP107,BS,BC0.0000 BD,OP108,FP107,AR0.0000,ZE89.0447,SD903.421,--TPT.,5/8"IRW/ALUM.CAP --Calculated: AR000'00", HD903.306, Z500.774 --Measured: AR000'00", HD903.304, Z500.730 --Delta: AR000'00", HD-0.001, Z-0.044 SS,OP108,FP1021,AR0.0001,ZE89.0446,SD903.422,--CK.,BS --DT01-16-1998 --TM09:08:28 --Set Collection with Obs Order 123...321... OC,OP108,N 49047.15278,E 19635.65561,EL486.240,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 BK,OP108,BP107,BS,BC0.0000 --DT01-16-1998 --TM09:35:08 LS,HI5.430,HR5.450 BD,OP108,FP107,AR0.0000,ZE89.0444,SD903.422,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.430,HR5.600 FD,OP108,FP109,AR185.3008,ZE90.0225,SD852.179,--TPT.,1/2"IRW/P-CAP FR,OP108,FP109,AR5.3005,ZE269.5728,SD852.179,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 BR,OP108,FP107,AR179.5956,ZE270.5506,SD903.423,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.430,HR5.450 BD,OP108,FP107,AR0.0000,ZE89.0443,SD903.423,--TPT.,5/8"IRW/ALUM.CAP LS,HI5.430,HR5.600 FD,OP108,FP109,AR185.3010,ZE90.0224,SD852.179,--TPT.,1/2"IRW/P-CAP FR,OP108,FP109,AR5.3007,ZE269.5733,SD852.179,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 BR,OP108,FP107,AR179.5958,ZE270.5507,SD903.422,--TPT.,5/8"IRW/ALUM.CAP --SS,OP108,FP107,AR0.0000,ZE89.0448,SD903.422333,--TPT.,5/8"IRW/ALUM.CAP --LS,HI5.430000,HR5.600000 --SS,OP108,FP109,AR185.3009,ZE90.0227,SD852.179250,--TPT.,1/2"IRW/P-CAP --LS,HI5.430000,HR5.450000 SS,OP108,FP1022,AR359.5958,ZE89.0444,SD903.422,--CK.,BS --DT01-16-1998 --TM09:36:46 OC,OP108,N 49047.15278,E 19635.65561,EL486.240,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.600 BK,OP108,BP109,BS,BC0.0000 BD,OP108,FP109,AR0.0000,ZE90.0225,SD852.178,--TPT.,1/2"IRW/P-CAP --Calculated: AR000'00", HD852.179, Z485.463 --Measured: AR000'00", HD852.178, Z485.471 --Delta: AR000'00", HD-0.001, Z0.008 SS,OP108,FP1023,AR0.0000,ZE90.0231,SD852.178,--CK.,BS --DT01-16-1998 --TM09:41:57 --Set Collection with Obs Order 123...321... OC,OP108,N 49047.15278,E 19635.65561,EL486.240,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.600 BK,OP108,BP109,BS,BC0.0000 --DT01-16-1998 --TM09:47:12 LS,HI5.430,HR5.600 BD,OP108,FP109,AR0.0000,ZE90.0226,SD852.179,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 FD,OP108,FP1024,AR174.2949,ZE89.0449,SD903.423,--CK.,107 FR,OP108,FP1024,AR354.2948,ZE270.5506,SD903.422,--CK.,107 LS,HI5.430,HR5.600 BR,OP108,FP109,AR179.5954,ZE269.5727,SD852.180,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.600 BD,OP108,FP109,AR359.5956,ZE90.0223,SD852.178,--TPT.,1/2"IRW/P-CAP LS,HI5.430,HR5.450 FD,OP108,FP1024,AR174.2945,ZE89.0448,SD903.422,--CK.,107 FR,OP108,FP1024,AR354.2949,ZE270.5509,SD903.421,--CK.,107 LS,HI5.430,HR5.600 BR,OP108,FP109,AR179.5956,ZE269.5737,SD852.179,--TPT.,1/2"IRW/P-CAP --SS,OP108,FP109,AR0.0000,ZE90.0226,SD852.179083,--TPT.,1/2"IRW/P-CAP --LS,HI5.430000,HR5.450000 --SS,OP108,FP1024,AR174.2951,ZE89.0450,SD903.422167,--CK.,107 --LS,HI5.430000,HR5.600000 SS,OP108,FP1025,AR359.5956,ZE90.0225,SD852.179,--CK.,BS --DT01-16-1998 --TM09:48:46 --DT01-17-1998 --TM01:30:02 --Equipment: Leica TPS Series --TS Scale: 1.00000000 --EDM Mode: Standard --P.C. mm Applied: 0.0000 OC,OP109,N 48285.31663,E 19253.79858,EL485.463,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.620 BK,OP109,BP108,BS,BC0.0000 BD,OP109,FP108,AR0.0000,ZE89.5554,SD852.182,--TPT.,1/2"IRW/P-CAP --Calculated: AR000'00", HD852.179, Z486.240 --Measured: AR000'00", HD852.181, Z486.189 --Delta: AR000'00", HD0.002, Z-0.050 SS,OP109,FP1026,AR0.0000,ZE89.5554,SD852.182,--CK.,BS --DT01-17-1998 --TM01:32:24 --Set Collection with Obs Order 123...321... OC,OP109,N 48285.31663,E 19253.79858,EL485.463,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.620 BK,OP109,BP108,BS,BC0.0000 --DT01-17-1998 --TM01:43:01 LS,HI5.330,HR5.620 BD,OP109,FP108,AR0.0000,ZE89.5555,SD852.181,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.610 FD,OP109,FP110,AR159.1432,ZE89.3845,SD771.242,--TPT.,5/8"IRW/P-CAP FR,OP109,FP110,AR339.1431,ZE270.2110,SD771.242,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.620 BR,OP109,FP108,AR180.0001,ZE270.0357,SD852.182,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.620 BD,OP109,FP108,AR359.5959,ZE89.5554,SD852.182,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.610 FD,OP109,FP110,AR159.1427,ZE89.3842,SD771.241,--TPT.,5/8"IRW/P-CAP FR,OP109,FP110,AR339.1427,ZE270.2104,SD771.242,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.620 BR,OP109,FP108,AR179.5957,ZE270.0353,SD852.182,--TPT.,1/2"IRW/P-CAP --SS,OP109,FP108,AR0.0000,ZE89.5600,SD852.181750,--TPT.,1/2"IRW/P-CAP --LS,HI5.330000,HR5.610000 --SS,OP109,FP110,AR159.1430,ZE89.3848,SD771.241750,--TPT.,5/8"IRW/P-CAP --LS,HI5.330000,HR5.620000 SS,OP109,FP1027,AR0.0002,ZE89.5555,SD852.182,--CK.,BS --DT01-17-1998 --TM01:44:31 OC,OP109,N 48285.31663,E 19253.79858,EL485.463,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.610 BK,OP109,BP110,BS,BC0.0000 BD,OP109,FP110,AR0.0000,ZE89.3844,SD771.241,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD771.227, Z489.938 --Measured: AR000'00", HD771.226, Z489.954 --Delta: AR000'00", HD-0.001, Z0.016 SS,OP109,FP1028,AR0.0002,ZE89.3845,SD771.242,--CK.,BS --DT01-17-1998 --TM01:47:42 --Set Collection with Obs Order 123...321... OC,OP109,N 48285.31663,E 19253.79858,EL485.463,--TPT.,1/2"IRW/P-CAP LS,HI5.330,HR5.610 BK,OP109,BP110,BS,BC0.0001 --DT01-17-1998 --TM01:51:07 LS,HI5.330,HR5.610 BD,OP109,FP110,AR0.0001,ZE89.3845,SD771.242,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.620 FD,OP109,FP1029,AR200.4529,ZE89.5556,SD852.180,--CK.,108 FR,OP109,FP1029,AR20.4530,ZE270.0359,SD852.181,--CK.,108 LS,HI5.330,HR5.610 BR,OP109,FP110,AR180.0000,ZE270.2104,SD771.241,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.610 BD,OP109,FP110,AR0.0000,ZE89.3847,SD771.242,--TPT.,5/8"IRW/P-CAP LS,HI5.330,HR5.620 FD,OP109,FP1029,AR200.4535,ZE89.5554,SD852.180,--CK.,108 FR,OP109,FP1029,AR20.4534,ZE270.0359,SD852.181,--CK.,108 LS,HI5.330,HR5.610 BR,OP109,FP110,AR180.0002,ZE270.2107,SD771.242,--TPT.,5/8"IRW/P-CAP --SS,OP109,FP110,AR0.0001,ZE89.3850,SD771.241750,--TPT.,5/8"IRW/P-CAP --LS,HI5.330000,HR5.620000 --SS,OP109,FP1029,AR200.4532,ZE89.5558,SD852.180500,--CK.,108 --LS,HI5.330000,HR5.610000 SS,OP109,FP1030,AR0.0003,ZE89.3852,SD771.241,--CK.,BS --DT01-17-1998 --TM01:52:42 OC,OP110,N 47518.12408,E 19175.01516,EL489.938,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 BK,OP110,BP109,BS,BC0.0000 BD,OP110,FP109,AR0.0000,ZE90.2121,SD771.243,--TPT.,1/2"IRW/P-CAP --Calculated: AR000'00", HD771.227, Z485.463 --Measured: AR000'00", HD771.228, Z485.428 --Delta: AR000'00", HD0.001, Z-0.035 SS,OP110,FP1031,AR0.0000,ZE90.2120,SD771.242,--CK.,BS --DT01-17-1998 --TM02:06:15 --Set Collection with Obs Order 123...321... OC,OP110,N 47518.12408,E 19175.01516,EL489.938,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 BK,OP110,BP109,BS,BC0.0000 --DT01-17-1998 --TM02:31:34 LS,HI5.610,HR5.330 BD,OP110,FP109,AR0.0000,ZE90.2119,SD771.241,--TPT.,1/2"IRW/P-CAP LS,HI5.610,HR5.620 FD,OP110,FP111,AR208.0150,ZE90.1729,SD516.081,--TPT.,5/8"IRW/P-CAP FR,OP110,FP111,AR28.0147,ZE269.4220,SD516.082,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 BR,OP110,FP109,AR180.0004,ZE269.3837,SD771.241,--TPT.,1/2"IRW/P-CAP LS,HI5.610,HR5.330 BD,OP110,FP109,AR0.0001,ZE90.2111,SD771.241,--TPT.,1/2"IRW/P-CAP LS,HI5.610,HR5.620 FD,OP110,FP111,AR208.0149,ZE90.1729,SD516.081,--TPT.,5/8"IRW/P-CAP FR,OP110,FP111,AR28.0145,ZE269.4216,SD516.086,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 BR,OP110,FP109,AR180.0003,ZE269.3830,SD771.239,--TPT.,1/2"IRW/P-CAP --SS,OP110,FP109,AR0.0000,ZE90.2121,SD771.240500,--TPT.,1/2"IRW/P-CAP --LS,HI5.610000,HR5.620000 --SS,OP110,FP111,AR208.0146,ZE90.1736,SD516.082500,--TPT.,5/8"IRW/P-CAP --LS,HI5.610000,HR5.330000 OC,OP110,N 47518.12408,E 19175.01516,EL489.938,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 BK,OP110,BP109,BS,BC0.0000 BD,OP110,FP109,AR0.0000,ZE90.2123,SD771.241,--TPT.,1/2"IRW/P-CAP --Calculated: AR000'00", HD771.227, Z485.463 --Measured: AR000'00", HD771.226, Z485.421 --Delta: AR000'00", HD-0.001, Z-0.042 SS,OP110,FP1032,AR0.0001,ZE90.2123,SD771.241,--CK.,BS --DT01-17-1998 --TM02:33:55 OC,OP110,N 47518.12408,E 19175.01516,EL489.938,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.620 BK,OP110,BP111,BS,BC0.0000 BD,OP110,FP111,AR0.0000,ZE90.1731,SD516.085,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD516.076, Z487.287 --Measured: AR000'00", HD516.078, Z487.298 --Delta: AR000'00", HD0.003, Z0.011 SS,OP110,FP1033,AR0.0000,ZE90.1730,SD516.081,--CK.,BS --DT01-17-1998 --TM02:36:18 --Set Collection with Obs Order 123...321... OC,OP110,N 47518.12408,E 19175.01516,EL489.938,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.620 BK,OP110,BP111,BS,BC0.0000 --DT01-17-1998 --TM02:41:38 LS,HI5.610,HR5.620 BD,OP110,FP111,AR0.0000,ZE90.1731,SD516.081,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 FD,OP110,FPCK.,AR34.0000,ZE-61.5811,SD90.212,--771.241000,-- FR,OP110,FPCK.,AR34.0000,ZE-241.5812,SD269.383,--771.240000,-- LS,HI5.610,HR5.620 BR,OP110,FP111,AR179.5953,ZE269.4217,SD516.081,--TPT.,5/8"IRW/P-CAP --MC,FPCK.,1034, LS,HI5.610,HR5.620 BD,OP110,FP111,AR0.0002,ZE90.1732,SD516.081,--TPT.,5/8"IRW/P-CAP LS,HI5.610,HR5.330 FD,OP110,FPCK.,AR34.0000,ZE-61.5815,SD90.211,--771.241000,-- FR,OP110,FPCK.,AR34.0000,ZE-241.5815,SD269.384,--771.240000,-- LS,HI5.610,HR5.620 BR,OP110,FP111,AR179.5958,ZE269.4215,SD516.081,--TPT.,5/8"IRW/P-CAP --MC,FPCK.,1034, SS,OP110,FP1035,AR359.5957,ZE90.1735,SD516.082,--CK.,BS --DT01-17-1998 --TM02:44:21 SP,PN1034,N 48285.3149,E 19253.8012,EL485.4311,--CK.,109 OC,OP111,N 47089.73749,E 18887.23208,EL487.287,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 BK,OP111,BP110,BS,BC0.0000 BD,OP111,FP110,AR0.0000,ZE89.4220,SD516.081,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD516.076, Z489.938 --Measured: AR000'00", HD516.074, Z489.949 --Delta: AR000'00", HD-0.002, Z0.011 SS,OP111,FP1036,AR0.0000,ZE89.4220,SD516.081,--CK.,BS --DT01-17-1998 --TM03:22:03 --Set Collection with Obs Order 123...321... OC,OP111,N 47089.73749,E 18887.23208,EL487.287,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 BK,OP111,BP110,BS,BC0.0000 --DT01-17-1998 --TM03:32:48 LS,HI5.620,HR5.610 BD,OP111,FP110,AR0.0000,ZE89.4240,SD516.081,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.440 FD,OP111,FP112,AR314.0107,ZE90.5002,SD573.575,--TPT.,5/8"IRW/P-CAP FR,OP111,FP112,AR134.0110,ZE269.0946,SD573.575,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 BR,OP111,FP110,AR180.0000,ZE270.1714,SD516.080,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 BD,OP111,FP110,AR0.0002,ZE89.4236,SD516.082,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.440 FD,OP111,FP112,AR314.0110,ZE90.5007,SD573.575,--TPT.,5/8"IRW/P-CAP FR,OP111,FP112,AR134.0108,ZE269.0945,SD573.574,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 BR,OP111,FP110,AR180.0000,ZE270.1707,SD516.082,--TPT.,5/8"IRW/P-CAP --SS,OP111,FP110,AR0.0000,ZE89.4244,SD516.081250,--TPT.,5/8"IRW/P-CAP --LS,HI5.620000,HR5.440000 --SS,OP111,FP112,AR314.0108,ZE90.5009,SD573.574750,--TPT.,5/8"IRW/P-CAP --LS,HI5.620000,HR5.610000 SS,OP111,FP1037,AR359.5958,ZE89.4244,SD516.080,--CK.,BS --DT01-17-1998 --TM03:34:39 OC,OP111,N 47089.73749,E 18887.23208,EL487.287,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.440 BK,OP111,BP112,BS,BC0.0000 BD,OP111,FP112,AR0.0000,ZE90.4955,SD573.573,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD573.514, Z479.099 --Measured: AR000'00", HD573.513, Z479.139 --Delta: AR000'00", HD-0.001, Z0.040 SS,OP111,FP1038,AR359.5959,ZE90.4955,SD573.573,--CK.,BS --DT01-17-1998 --TM03:36:47 --Set Collection with Obs Order 123...321... OC,OP111,N 47089.73749,E 18887.23208,EL487.287,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.440 BK,OP111,BP112,BS,BC0.0000 --DT01-17-1998 --TM03:42:21 LS,HI5.620,HR5.440 BD,OP111,FP112,AR0.0000,ZE90.4955,SD573.573,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 FD,OP111,FP1039,AR45.5849,ZE89.4233,SD516.081,--CK.,110 FR,OP111,FP1039,AR225.5853,ZE270.1714,SD516.079,--CK.,110 LS,HI5.620,HR5.440 BR,OP111,FP112,AR180.0001,ZE269.0949,SD573.575,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.440 BD,OP111,FP112,AR0.0002,ZE90.5011,SD573.575,--TPT.,5/8"IRW/P-CAP LS,HI5.620,HR5.610 FD,OP111,FP1039,AR45.5853,ZE89.4230,SD516.085,--CK.,110 FR,OP111,FP1039,AR225.5854,ZE270.1718,SD516.080,--CK.,110 LS,HI5.620,HR5.440 BR,OP111,FP112,AR180.0002,ZE269.0946,SD573.574,--TPT.,5/8"IRW/P-CAP --SS,OP111,FP112,AR0.0000,ZE90.5008,SD573.574250,--TPT.,5/8"IRW/P-CAP --LS,HI5.620000,HR5.610000 --SS,OP111,FP1039,AR45.5851,ZE89.4238,SD516.081250,--CK.,110 --LS,HI5.620000,HR5.440000 SS,OP111,FP1040,AR0.0001,ZE90.5004,SD573.574,--CK.,BS --DT01-17-1998 --TM03:43:35 OC,OP112,N 47650.53373,E 18767.12568,EL479.099,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 BK,OP112,BP111,BS,BC0.0000 BD,OP112,FP111,AR0.0000,ZE89.0959,SD573.573,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD573.514, Z487.287 --Measured: AR000'00", HD573.512, Z487.263 --Delta: AR000'00", HD-0.001, Z-0.024 SS,OP112,FP1041,AR359.5959,ZE89.1004,SD573.576,--CK.,BS --DT01-17-1998 --TM04:15:51 --Set Collection with Obs Order 123...321... OC,OP112,N 47650.53373,E 18767.12568,EL479.099,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 BK,OP112,BP111,BS,BC0.0000 --DT01-17-1998 --TM04:21:50 LS,HI5.440,HR5.620 BD,OP112,FP111,AR0.0000,ZE89.1000,SD573.575,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 FD,OP112,FP113,AR203.0822,ZE91.3307,SD676.914,--TPT.,5/8"IRW/P-CAP FR,OP112,FP113,AR23.0816,ZE268.2633,SD676.915,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 BR,OP112,FP111,AR180.0001,ZE270.4941,SD573.574,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 BD,OP112,FP111,AR0.0001,ZE89.1005,SD573.576,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 FD,OP112,FP113,AR203.0821,ZE91.3314,SD676.915,--TPT.,5/8"IRW/P-CAP FR,OP112,FP113,AR23.0817,ZE268.2638,SD676.915,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 BR,OP112,FP111,AR179.5955,ZE270.4939,SD573.575,--TPT.,5/8"IRW/P-CAP --SS,OP112,FP111,AR0.0000,ZE89.1011,SD573.575000,--TPT.,5/8"IRW/P-CAP --LS,HI5.440000,HR5.570000 --SS,OP112,FP113,AR203.0820,ZE91.3317,SD676.914750,--TPT.,5/8"IRW/P-CAP --LS,HI5.440000,HR5.620000 SS,OP112,FP1042,AR359.5959,ZE89.1000,SD573.573,--CK.,BS --DT01-17-1998 --TM04:25:27 OC,OP112,N 47650.53373,E 18767.12568,EL479.099,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 BK,OP112,BP113,BS,BC0.0000 BD,OP112,FP113,AR0.0000,ZE91.3313,SD676.913,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD676.666, Z460.601 --Measured: AR000'00", HD676.664, Z460.616 --Delta: AR000'00", HD-0.001, Z0.015 SS,OP112,FP1043,AR0.0001,ZE91.3311,SD676.914,--CK.,BS --DT01-17-1998 --TM04:29:33 OC,OP112,N 47650.53373,E 18767.12568,EL479.099,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 BK,OP112,BP113,BS,BC0.0000 BD,OP112,FP113,AR0.0000,ZE91.3310,SD676.915,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD676.666, Z460.601 --Measured: AR000'00", HD676.666, Z460.626 --Delta: AR000'00", HD0.001, Z0.025 --Set Collection with Obs Order 123...321... OC,OP112,N 47650.53373,E 18767.12568,EL479.099,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 BK,OP112,BP113,BS,BC0.0000 --DT01-17-1998 --TM04:34:47 LS,HI5.440,HR5.570 BD,OP112,FP113,AR0.0000,ZE91.3315,SD676.913,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 FD,OP112,FP1044,AR156.5141,ZE89.1010,SD573.575,--CK.,111 FR,OP112,FP1044,AR336.5143,ZE270.4949,SD573.575,--CK.,111 LS,HI5.440,HR5.570 BR,OP112,FP113,AR180.0002,ZE268.2636,SD676.914,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.570 BD,OP112,FP113,AR0.0000,ZE91.3307,SD676.915,--TPT.,5/8"IRW/P-CAP LS,HI5.440,HR5.620 FD,OP112,FP1044,AR156.5142,ZE89.1006,SD573.575,--CK.,111 FR,OP112,FP1044,AR336.5145,ZE270.4945,SD573.574,--CK.,111 LS,HI5.440,HR5.570 BR,OP112,FP113,AR180.0003,ZE268.2638,SD676.916,--TPT.,5/8"IRW/P-CAP --SS,OP112,FP113,AR0.0000,ZE91.3317,SD676.914500,--TPT.,5/8"IRW/P-CAP --LS,HI5.440000,HR5.620000 --SS,OP112,FP1044,AR156.5142,ZE89.1011,SD573.574750,--CK.,111 --LS,HI5.440000,HR5.570000 SS,OP112,FP1045,AR0.0003,ZE91.3310,SD676.914,--CK.,BS --DT01-17-1998 --TM04:36:09 OC,OP113,N 48314.65330,E 18896.82304,EL460.601,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 BK,OP113,BP112,BS,BC0.0000 BD,OP113,FP112,AR0.0000,ZE88.2653,SD676.914,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD676.666, Z479.099 --Measured: AR000'00", HD676.666, Z479.064 --Delta: AR000'00", HD0.000, Z-0.034 SS,OP113,FP1046,AR0.0000,ZE88.2652,SD676.915,--CK.,BS --DT01-17-1998 --TM05:56:35 --Set Collection with Obs Order 123...321... OC,OP113,N 48314.65330,E 18896.82304,EL460.601,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 BK,OP113,BP112,BS,BC0.0000 --DT01-17-1998 --TM06:13:25 LS,HI5.570,HR5.440 BD,OP113,FP112,AR0.0000,ZE88.2652,SD676.915,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.510 FD,OP113,FP114,AR189.3229,ZE88.5053,SD897.760,--TPT.,5/8"IRW/P-CAP FR,OP113,FP114,AR9.3227,ZE271.0856,SD897.758,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 BR,OP113,FP112,AR179.5958,ZE271.3257,SD676.913,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 BD,OP113,FP112,AR359.5958,ZE88.2651,SD676.914,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.510 FD,OP113,FP114,AR189.3231,ZE88.5049,SD897.758,--TPT.,5/8"IRW/P-CAP FR,OP113,FP114,AR9.3227,ZE271.0859,SD897.757,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 BR,OP113,FP112,AR179.5958,ZE271.3302,SD676.913,--TPT.,5/8"IRW/P-CAP --SS,OP113,FP112,AR0.0000,ZE88.2656,SD676.913750,--TPT.,5/8"IRW/P-CAP --LS,HI5.570000,HR5.510000 --SS,OP113,FP114,AR189.3230,ZE88.5057,SD897.758250,--TPT.,5/8"IRW/P-CAP --LS,HI5.570000,HR5.440000 SS,OP113,FP1047,AR359.5959,ZE88.2653,SD676.914,--CK.,BS --DT01-17-1998 --TM06:14:54 OC,OP113,N 48314.65330,E 18896.82304,EL460.601,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.510 BK,OP113,BP114,BS,BC0.0000 BD,OP113,FP114,AR0.0000,ZE88.5059,SD897.758,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD897.577, Z478.693 --Measured: AR000'00", HD897.577, Z478.684 --Delta: AR000'00", HD-0.000, Z-0.010 SS,OP113,FP1048,AR359.5959,ZE88.5100,SD897.759,--CK.,BS --DT01-17-1998 --TM06:19:24 --Set Collection with Obs Order 123...321... OC,OP113,N 48314.65330,E 18896.82304,EL460.601,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.510 BK,OP113,BP114,BS,BC0.0000 --DT01-17-1998 --TM06:27:48 LS,HI5.570,HR5.510 BD,OP113,FP114,AR0.0000,ZE88.5059,SD897.759,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 FD,OP113,FP1049,AR170.2723,ZE88.2650,SD676.914,--CK.,112 FR,OP113,FP1049,AR350.2725,ZE271.3304,SD676.915,--CK.,112 LS,HI5.570,HR5.510 BR,OP113,FP114,AR179.5955,ZE271.0901,SD897.759,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.510 BD,OP113,FP114,AR359.5955,ZE88.5050,SD897.760,--TPT.,5/8"IRW/P-CAP LS,HI5.570,HR5.440 FD,OP113,FP1049,AR170.2722,ZE88.2650,SD676.913,--CK.,112 FR,OP113,FP1049,AR350.2722,ZE271.3258,SD676.913,--CK.,112 LS,HI5.570,HR5.510 BR,OP113,FP114,AR179.5955,ZE271.0857,SD897.760,--TPT.,5/8"IRW/P-CAP --SS,OP113,FP114,AR0.0000,ZE88.5058,SD897.759500,--TPT.,5/8"IRW/P-CAP --LS,HI5.570000,HR5.440000 --SS,OP113,FP1049,AR170.2727,ZE88.2654,SD676.913750,--CK.,112 --LS,HI5.570000,HR5.510000 SS,OP113,FP1050,AR359.5954,ZE88.5057,SD897.758,--CK.,BS --DT01-17-1998 --TM06:29:22 OC,OP114,N 49154.88301,E 19212.51078,EL478.693,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.570 BK,OP114,BP113,BS,BC0.0000 BD,OP114,FP113,AR0.0000,ZE91.0916,SD897.759,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD897.577, Z460.601 --Measured: AR000'00", HD897.577, Z460.546 --Delta: AR000'00", HD-0.000, Z-0.055 SS,OP114,FP1051,AR0.0000,ZE91.0914,SD897.757,--CK.,BS --DT01-17-1998 --TM07:18:20 --Set Collection with Obs Order 123...321... OC,OP114,N 49154.88301,E 19212.51078,EL478.693,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.570 BK,OP114,BP113,BS,BC0.0000 --DT01-17-1998 --TM07:25:41 LS,HI5.510,HR5.570 BD,OP114,FP113,AR0.0000,ZE91.0916,SD897.758,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.820 FD,OP114,FP115,AR166.0159,ZE90.0417,SD733.081,--TPT.,TXDOTALUM-CAPFND FR,OP114,FP115,AR346.0157,ZE269.5532,SD733.080,--TPT.,TXDOTALUM-CAPFND LS,HI5.510,HR5.570 BR,OP114,FP113,AR180.0000,ZE268.5038,SD897.759,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.570 BD,OP114,FP113,AR0.0000,ZE91.0921,SD897.758,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.820 FD,OP114,FP115,AR166.0200,ZE90.0423,SD733.081,--TPT.,TXDOTALUM-CAPFND FR,OP114,FP115,AR346.0202,ZE269.5525,SD733.080,--TPT.,TXDOTALUM-CAPFND LS,HI5.510,HR5.570 BR,OP114,FP113,AR180.0003,ZE268.5036,SD897.759,--TPT.,5/8"IRW/P-CAP --SS,OP114,FP113,AR0.0000,ZE91.0921,SD897.758500,--TPT.,5/8"IRW/P-CAP --LS,HI5.510000,HR5.820000 --SS,OP114,FP115,AR166.0159,ZE90.0426,SD733.080500,--TPT.,TXDOTALUM-CAPFND --LS,HI5.510000,HR5.570000 SS,OP114,FP1052,AR0.0003,ZE91.0914,SD897.759,--CK.,BS --DT01-17-1998 --TM07:26:39 OC,OP114,N 49154.88301,E 19212.51078,EL478.693,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.820 BK,OP114,BP115,BS,BC0.0000 BD,OP114,FP115,AR0.0000,ZE90.0435,SD733.082,--TPT.,TXDOTALUM-CAPFND --Calculated: AR000'00", HD733.080, Z477.439 --Measured: AR000'00", HD733.081, Z477.406 --Delta: AR000'00", HD0.001, Z-0.033 SS,OP114,FP1053,AR0.0000,ZE90.0435,SD733.082,--CK.,BS --DT01-17-1998 --TM07:28:54 --Set Collection with Obs Order 123...321... OC,OP114,N 49154.88301,E 19212.51078,EL478.693,--TPT.,5/8"IRW/P-CAP LS,HI5.510,HR5.820 BK,OP114,BP115,BS,BC0.0000 --DT01-17-1998 --TM07:42:56 LS,HI5.510,HR5.820 BD,OP114,FP115,AR0.0000,ZE90.0420,SD733.080,--TPT.,TXDOTALUM-CAPFND LS,HI5.510,HR5.570 FD,OP114,FP1054,AR193.5806,ZE91.0921,SD897.759,--CK.,113 FR,OP114,FP1054,AR13.5807,ZE268.5043,SD897.756,--CK.,113 LS,HI5.510,HR5.820 BR,OP114,FP115,AR179.5959,ZE269.5522,SD733.079,--TPT.,TXDOTALUM-CAPFND LS,HI5.510,HR5.820 BD,OP114,FP115,AR0.0001,ZE90.0426,SD733.081,--TPT.,TXDOTALUM-CAPFND LS,HI5.510,HR5.570 FD,OP114,FP1054,AR193.5808,ZE91.0916,SD897.757,--CK.,113 FR,OP114,FP1054,AR13.5805,ZE268.5032,SD897.758,--CK.,113 LS,HI5.510,HR5.820 BR,OP114,FP115,AR180.0004,ZE269.5527,SD733.080,--TPT.,TXDOTALUM-CAPFND --SS,OP114,FP115,AR0.0000,ZE90.0429,SD733.080000,--TPT.,TXDOTALUM-CAPFND --LS,HI5.510000,HR5.570000 --SS,OP114,FP1054,AR193.5805,ZE91.0921,SD897.757500,--CK.,113 --LS,HI5.510000,HR5.820000 SS,OP114,FP1055,AR0.0004,ZE90.0428,SD733.080,--CK.,BS --DT01-17-1998 --TM07:44:03 OC,OP115,N 49883.06780,E 19297.08648,EL477.439,--TPT.,TXDOTALUM-CAPFND LS,HI5.820,HR5.510 BK,OP115,BP114,BS,BC0.0000 BD,OP115,FP114,AR0.0000,ZE89.5515,SD733.082,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD733.080, Z478.693 --Measured: AR000'00", HD733.081, Z478.762 --Delta: AR000'00", HD0.001, Z0.068 SS,OP115,FP1056,AR359.5959,ZE89.5517,SD733.080,--CK.,BS --DT01-17-1998 --TM08:18:43 --Set Collection with Obs Order 123...321... OC,OP115,N 49883.06780,E 19297.08648,EL477.439,--TPT.,TXDOTALUM-CAPFND LS,HI5.820,HR5.510 BK,OP115,BP114,BS,BC0.0000 --DT01-17-1998 --TM08:34:53 LS,HI5.820,HR5.510 BD,OP115,FP114,AR0.0000,ZE89.5515,SD733.082,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.900 FD,OP115,FP116,AR88.2435,ZE92.0530,SD975.961,--TRP.,5/8"IRW/P-CAP FR,OP115,FP116,AR268.2441,ZE267.5418,SD975.959,--TRP.,5/8"IRW/P-CAP LS,HI5.820,HR5.510 BR,OP115,FP114,AR180.0005,ZE270.0417,SD733.082,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.510 BD,OP115,FP114,AR0.0003,ZE89.5537,SD733.082,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.900 FD,OP115,FP116,AR88.2443,ZE92.0530,SD975.958,--TRP.,5/8"IRW/P-CAP FR,OP115,FP116,AR268.2443,ZE267.5422,SD975.961,--TRP.,5/8"IRW/P-CAP LS,HI5.820,HR5.510 BR,OP115,FP114,AR180.0008,ZE270.0407,SD733.082,--TPT.,5/8"IRW/P-CAP --SS,OP115,FP114,AR0.0000,ZE89.5537,SD733.082000,--TPT.,5/8"IRW/P-CAP --LS,HI5.820000,HR5.900000 --SS,OP115,FP116,AR88.2437,ZE92.0535,SD975.959750,--TRP.,5/8"IRW/P-CAP --LS,HI5.820000,HR5.510000 SS,OP115,FP1057,AR0.0000,ZE89.5551,SD733.081,--CK.,BS --DT01-17-1998 --TM08:36:50 OC,OP115,N 49883.06780,E 19297.08648,EL477.439,--TPT.,TXDOTALUM-CAPFND LS,HI5.820,HR5.900 BK,OP115,BP116,BS,BC0.0000 BD,OP115,FP116,AR0.0000,ZE92.0537,SD975.961,--TRP.,5/8"IRW/P-CAP --Calculated: AR000'00", HD975.309, Z441.714 --Measured: AR000'00", HD975.310, Z441.705 --Delta: AR000'00", HD0.001, Z-0.010 SS,OP115,FP1058,AR0.0002,ZE92.0538,SD975.961,--CK.,BS --DT01-17-1998 --TM08:39:02 --Set Collection with Obs Order 123...321... OC,OP115,N 49883.06780,E 19297.08648,EL477.439,--TPT.,TXDOTALUM-CAPFND LS,HI5.820,HR5.900 BK,OP115,BP116,BS,BC0.0000 --DT01-17-1998 --TM08:51:55 LS,HI5.820,HR5.900 BD,OP115,FP116,AR0.0000,ZE92.0538,SD975.961,--TRP.,5/8"IRW/P-CAP LS,HI5.820,HR5.510 FD,OP115,FP1059,AR271.3519,ZE89.5539,SD733.082,--CK.,114 FR,OP115,FP1059,AR91.3521,ZE270.0400,SD733.082,--CK.,114 LS,HI5.820,HR5.900 BR,OP115,FP116,AR179.5954,ZE267.5436,SD975.960,--TRP.,5/8"IRW/P-CAP LS,HI5.820,HR5.900 BD,OP115,FP116,AR0.0006,ZE92.0531,SD975.961,--TRP.,5/8"IRW/P-CAP LS,HI5.820,HR5.510 FD,OP115,FP1059,AR271.3523,ZE89.5543,SD733.080,--CK.,114 FR,OP115,FP1059,AR91.3526,ZE270.0409,SD733.082,--CK.,114 LS,HI5.820,HR5.900 BR,OP115,FP116,AR180.0000,ZE267.5421,SD975.961,--TRP.,5/8"IRW/P-CAP --SS,OP115,FP116,AR0.0000,ZE92.0533,SD975.960750,--TRP.,5/8"IRW/P-CAP --LS,HI5.820000,HR5.510000 --SS,OP115,FP1059,AR271.3522,ZE89.5548,SD733.081500,--CK.,114 --LS,HI5.820000,HR5.900000 SS,OP115,FP1060,AR0.0003,ZE92.0529,SD975.959,--CK.,BS --DT01-17-1998 --TM08:53:42 --DT01-18-1998 --TM01:29:53 --Equipment: Leica TPS Series --TS Scale: 1.00000000 --EDM Mode: Standard --P.C. mm Applied: 0.0000 OC,OP116,N 49968.66720,E 18325.54151,EL441.714,--TRP.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 BK,OP116,BP115,BS,BC0.0000 BD,OP116,FP115,AR0.0000,ZE87.5411,SD975.970,--TPT.,TXDOTALUM-CAPFND --Calculated: AR000'00", HD975.309, Z477.439 --Measured: AR000'00", HD975.316, Z477.325 --Delta: AR000'00", HD0.008, Z-0.113 SS,OP116,FP1061,AR0.0000,ZE87.5406,SD975.968,--CK.,BS --DT01-18-1998 --TM01:59:11 --Set Collection with Obs Order 123...321... OC,OP116,N 49968.66720,E 18325.54151,EL441.714,--TRP.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 BK,OP116,BP115,BS,BC0.0001 --DT01-18-1998 --TM02:07:06 LS,HI5.760,HR5.860 BD,OP116,FP115,AR0.0001,ZE87.5411,SD975.968,--TPT.,TXDOTALUM-CAPFND LS,HI5.760,HR5.800 FD,OP116,FP117,AR356.4059,ZE87.5252,SD998.433,--TPT.,5/8"IRW/P-CAP FR,OP116,FP117,AR176.4100,ZE272.0655,SD998.432,--TPT.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 BR,OP116,FP115,AR179.5959,ZE272.0539,SD975.968,--TPT.,TXDOTALUM-CAPFND LS,HI5.760,HR5.860 BD,OP116,FP115,AR0.0000,ZE87.5412,SD975.968,--TPT.,TXDOTALUM-CAPFND LS,HI5.760,HR5.800 FD,OP116,FP117,AR356.4106,ZE87.5251,SD998.432,--TPT.,5/8"IRW/P-CAP FR,OP116,FP117,AR176.4101,ZE272.0657,SD998.432,--TPT.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 BR,OP116,FP115,AR179.5959,ZE272.0539,SD975.968,--TPT.,TXDOTALUM-CAPFND --SS,OP116,FP115,AR0.0001,ZE87.5416,SD975.968000,--TPT.,TXDOTALUM-CAPFND --LS,HI5.760000,HR5.800000 --SS,OP116,FP117,AR356.4103,ZE87.5258,SD998.432250,--TPT.,5/8"IRW/P-CAP --LS,HI5.760000,HR5.860000 SS,OP116,FP1062,AR359.5959,ZE87.5408,SD975.967,--CK.,BS --DT01-18-1998 --TM02:08:24 OC,OP116,N 49968.66720,E 18325.54151,EL441.714,--TRP.,5/8"IRW/P-CAP LS,HI5.760,HR5.800 BK,OP116,BP117,BS,BC0.0000 BD,OP116,FP117,AR0.0000,ZE87.5246,SD998.434,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD997.751, Z478.562 --Measured: AR000'00", HD997.750, Z478.619 --Delta: AR000'00", HD-0.000, Z0.057 SS,OP116,FP1063,AR0.0001,ZE87.5244,SD998.433,--CK.,BS --DT01-18-1998 --TM02:10:01 --Set Collection with Obs Order 123...321... OC,OP116,N 49968.66720,E 18325.54151,EL441.714,--TRP.,5/8"IRW/P-CAP LS,HI5.760,HR5.800 BK,OP116,BP117,BS,BC0.0000 --DT01-18-1998 --TM02:15:56 LS,HI5.760,HR5.800 BD,OP116,FP117,AR0.0000,ZE87.5306,SD998.431,--TPT.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 FD,OP116,FP1064,AR3.1848,ZE87.5402,SD975.968,--CK.,115 FR,OP116,FP1064,AR183.1854,ZE272.0540,SD975.965,--CK.,115 LS,HI5.760,HR5.800 BR,OP116,FP117,AR179.5957,ZE272.0656,SD998.432,--TPT.,5/8"IRW/P-CAP LS,HI5.760,HR5.800 BD,OP116,FP117,AR0.0000,ZE87.5249,SD998.434,--TPT.,5/8"IRW/P-CAP LS,HI5.760,HR5.860 FD,OP116,FP1064,AR3.1856,ZE87.5406,SD975.968,--CK.,115 FR,OP116,FP1064,AR183.1850,ZE272.0537,SD975.967,--CK.,115 LS,HI5.760,HR5.800 BR,OP116,FP117,AR179.5959,ZE272.0704,SD998.434,--TPT.,5/8"IRW/P-CAP --SS,OP116,FP117,AR0.0000,ZE87.5259,SD998.432750,--TPT.,5/8"IRW/P-CAP --LS,HI5.760000,HR5.860000 --SS,OP116,FP1064,AR3.1853,ZE87.5413,SD975.967000,--CK.,115 --LS,HI5.760000,HR5.800000 SS,OP116,FP1065,AR359.5957,ZE87.5254,SD998.434,--CK.,BS --DT01-18-1998 --TM02:17:01 OC,OP117,N 49938.73790,E 19322.84312,EL478.562,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 BK,OP117,BP116,BS,BC0.0000 BD,OP117,FP116,AR0.0000,ZE92.0706,SD998.432,--TRP.,5/8"IRW/P-CAP --Calculated: AR000'00", HD997.751, Z441.714 --Measured: AR000'00", HD997.750, Z441.696 --Delta: AR000'00", HD-0.001, Z-0.018 SS,OP117,FP1066,AR0.0000,ZE92.0711,SD998.433,--CK.,BS --DT01-18-1998 --TM02:47:58 --Set Collection with Obs Order 123...321... OC,OP117,N 49938.73790,E 19322.84312,EL478.562,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 BK,OP117,BP116,BS,BC0.0000 --DT01-18-1998 --TM02:56:21 LS,HI5.800,HR5.760 BD,OP117,FP116,AR0.0000,ZE92.0713,SD998.432,--TRP.,5/8"IRW/P-CAP LS,HI5.800,HR5.480 FD,OP117,FP118,AR101.4247,ZE90.0643,SD887.680,--TPT.,5/8"IRW/P-CAP FR,OP117,FP118,AR281.4246,ZE269.5310,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 BR,OP117,FP116,AR179.5954,ZE267.5242,SD998.432,--TRP.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 BD,OP117,FP116,AR359.5959,ZE92.0706,SD998.431,--TRP.,5/8"IRW/P-CAP LS,HI5.800,HR5.480 FD,OP117,FP118,AR101.4253,ZE90.0641,SD887.681,--TPT.,5/8"IRW/P-CAP FR,OP117,FP118,AR281.4248,ZE269.5304,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 BR,OP117,FP116,AR179.5957,ZE267.5237,SD998.432,--TRP.,5/8"IRW/P-CAP --SS,OP117,FP116,AR0.0000,ZE92.0715,SD998.431750,--TRP.,5/8"IRW/P-CAP --LS,HI5.800000,HR5.480000 --SS,OP117,FP118,AR101.4251,ZE90.0647,SD887.679750,--TPT.,5/8"IRW/P-CAP --LS,HI5.800000,HR5.760000 SS,OP117,FP1067,AR359.5956,ZE92.0712,SD998.432,--CK.,BS --DT01-18-1998 --TM02:58:05 OC,OP117,N 49938.73790,E 19322.84312,EL478.562,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.480 BK,OP117,BP118,BS,BC0.0000 BD,OP117,FP118,AR0.0000,ZE90.0652,SD887.681,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD887.678, Z477.128 --Measured: AR000'00", HD887.679, Z477.109 --Delta: AR000'00", HD0.001, Z-0.019 SS,OP117,FP1068,AR0.0000,ZE90.0652,SD887.681,--CK.,BS --DT01-18-1998 --TM03:00:01 --Set Collection with Obs Order 123...321... OC,OP117,N 49938.73790,E 19322.84312,EL478.562,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.480 BK,OP117,BP118,BS,BC0.0000 --DT01-18-1998 --TM03:03:59 LS,HI5.800,HR5.480 BD,OP117,FP118,AR0.0000,ZE90.0652,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 FD,OP117,FP1069,AR258.1715,ZE92.0702,SD998.433,--CK.,116 FR,OP117,FP1069,AR78.1710,ZE267.5241,SD998.431,--CK.,116 LS,HI5.800,HR5.480 BR,OP117,FP118,AR180.0000,ZE269.5311,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.480 BD,OP117,FP118,AR359.5959,ZE90.0635,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.800,HR5.760 FD,OP117,FP1069,AR258.1712,ZE92.0707,SD998.432,--CK.,116 FR,OP117,FP1069,AR78.1705,ZE267.5241,SD998.432,--CK.,116 LS,HI5.800,HR5.480 BR,OP117,FP118,AR179.5958,ZE269.5309,SD887.679,--TPT.,5/8"IRW/P-CAP --SS,OP117,FP118,AR0.0000,ZE90.0647,SD887.679000,--TPT.,5/8"IRW/P-CAP --LS,HI5.800000,HR5.760000 --SS,OP117,FP1069,AR258.1711,ZE92.0712,SD998.432000,--CK.,116 --LS,HI5.800000,HR5.480000 SS,OP117,FP1070,AR0.0000,ZE90.0641,SD887.679,--CK.,BS --DT01-18-1998 --TM03:05:23 OC,OP118,N 50802.13062,E 19529.05966,EL477.128,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 BK,OP118,BP117,BS,BC0.0000 BD,OP118,FP117,AR0.0000,ZE89.5329,SD887.676,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD887.678, Z478.562 --Measured: AR000'00", HD887.674, Z478.491 --Delta: AR000'00", HD-0.004, Z-0.071 SS,OP118,FP1071,AR0.0000,ZE89.5329,SD887.678,--CK.,BS --DT01-18-1998 --TM03:58:26 --Set Collection with Obs Order 123...321... OC,OP118,N 50802.13062,E 19529.05966,EL477.128,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 BK,OP118,BP117,BS,BC0.0001 --DT01-18-1998 --TM04:03:32 LS,HI5.480,HR5.800 BD,OP118,FP117,AR0.0001,ZE89.5331,SD887.679,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.530 FD,OP118,FP119,AR170.5739,ZE91.0808,SD907.562,--TPT.,5/8"IRW/P-CAP FR,OP118,FP119,AR350.5742,ZE268.5141,SD907.559,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 BR,OP118,FP117,AR180.0004,ZE270.0621,SD887.678,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 BD,OP118,FP117,AR0.0003,ZE89.5330,SD887.677,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.530 FD,OP118,FP119,AR170.5745,ZE91.0805,SD907.561,--TPT.,5/8"IRW/P-CAP FR,OP118,FP119,AR350.5742,ZE268.5145,SD907.561,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 BR,OP118,FP117,AR180.0006,ZE270.0613,SD887.678,--TPT.,5/8"IRW/P-CAP --SS,OP118,FP117,AR0.0001,ZE89.5337,SD887.678000,--TPT.,5/8"IRW/P-CAP --LS,HI5.480000,HR5.530000 --SS,OP118,FP119,AR170.5740,ZE91.0812,SD907.560750,--TPT.,5/8"IRW/P-CAP --LS,HI5.480000,HR5.800000 SS,OP118,FP1072,AR0.0002,ZE89.5331,SD887.678,--CK.,BS --DT01-18-1998 --TM04:04:33 OC,OP118,N 50802.13062,E 19529.05966,EL477.128,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.530 BK,OP118,BP119,BS,BC0.0000 BD,OP118,FP119,AR0.0000,ZE91.0804,SD907.560,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD907.382, Z459.075 --Measured: AR000'00", HD907.382, Z459.110 --Delta: AR000'00", HD-0.000, Z0.034 SS,OP118,FP1073,AR359.5958,ZE91.0803,SD907.560,--CK.,BS --DT01-18-1998 --TM04:08:11 --Set Collection with Obs Order 123...321... OC,OP118,N 50802.13062,E 19529.05966,EL477.128,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.530 BK,OP118,BP119,BS,BC0.0000 --DT01-18-1998 --TM04:13:17 LS,HI5.480,HR5.530 BD,OP118,FP119,AR0.0000,ZE91.0804,SD907.559,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 FD,OP118,FP1074,AR189.0215,ZE89.5334,SD887.678,--CK.,117 FR,OP118,FP1074,AR9.0217,ZE270.0618,SD887.679,--CK.,117 LS,HI5.480,HR5.530 BR,OP118,FP119,AR180.0001,ZE268.5139,SD907.559,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.530 BD,OP118,FP119,AR359.5956,ZE91.0807,SD907.561,--TPT.,5/8"IRW/P-CAP LS,HI5.480,HR5.800 FD,OP118,FP1074,AR189.0219,ZE89.5329,SD887.677,--CK.,117 FR,OP118,FP1074,AR9.0217,ZE270.0621,SD887.679,--CK.,117 LS,HI5.480,HR5.530 BR,OP118,FP119,AR179.5955,ZE268.5140,SD907.561,--TPT.,5/8"IRW/P-CAP --SS,OP118,FP119,AR0.0000,ZE91.0813,SD907.560000,--TPT.,5/8"IRW/P-CAP --LS,HI5.480000,HR5.800000 --SS,OP118,FP1074,AR189.0219,ZE89.5336,SD887.678250,--CK.,117 --LS,HI5.480000,HR5.530000 SS,OP118,FP1075,AR359.5958,ZE91.0811,SD907.561,--CK.,117 --DT01-18-1998 --TM04:14:13 OC,OP119,N 51706.84604,E 19598.57537,EL459.075,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 BK,OP119,BP118,BS,BC0.0000 BD,OP119,FP118,AR0.0000,ZE88.5150,SD907.565,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD907.382, Z477.128 --Measured: AR000'00", HD907.387, Z477.120 --Delta: AR000'00", HD0.004, Z-0.008 SS,OP119,FP1076,AR0.0000,ZE88.5153,SD907.566,--CK.,BS --DT01-18-1998 --TM06:02:01 --Set Collection with Obs Order 123...321... OC,OP119,N 51706.84604,E 19598.57537,EL459.075,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 BK,OP119,BP118,BS,BC0.0000 --DT01-18-1998 --TM06:06:52 LS,HI5.530,HR5.480 BD,OP119,FP118,AR0.0000,ZE88.5151,SD907.566,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.720 FD,OP119,FP120,AR321.1049,ZE89.1839,SD414.695,--TPT.,5/8"IRW/P-CAP FR,OP119,FP120,AR141.1048,ZE270.4112,SD414.695,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 BR,OP119,FP118,AR179.5955,ZE271.0804,SD907.565,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 BD,OP119,FP118,AR359.5956,ZE88.5159,SD907.565,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.720 FD,OP119,FP120,AR321.1045,ZE89.1828,SD414.693,--TPT.,5/8"IRW/P-CAP FR,OP119,FP120,AR141.1052,ZE270.4116,SD414.693,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 BR,OP119,FP118,AR179.5954,ZE271.0751,SD907.565,--TPT.,5/8"IRW/P-CAP --SS,OP119,FP118,AR0.0000,ZE88.5159,SD907.565250,--TPT.,5/8"IRW/P-CAP --LS,HI5.530000,HR5.720000 --SS,OP119,FP120,AR321.1052,ZE89.1840,SD414.694000,--TPT.,5/8"IRW/P-CAP --LS,HI5.530000,HR5.480000 SS,OP119,FP1077,AR359.5958,ZE88.5155,SD907.566,--CK.,BS --DT01-18-1998 --TM06:08:06 OC,OP119,N 51706.84604,E 19598.57537,EL459.075,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.720 BK,OP119,BP120,BS,BC0.0000 BD,OP119,FP120,AR0.0000,ZE89.1845,SD414.695,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD414.664, Z463.872 --Measured: AR000'00", HD414.665, Z463.861 --Delta: AR000'00", HD0.001, Z-0.011 SS,OP119,FP1078,AR0.0000,ZE89.1847,SD414.694,--CK.,BS --DT01-18-1998 --TM06:10:50 --Set Collection with Obs Order 123...321... OC,OP119,N 51706.84604,E 19598.57537,EL459.075,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.720 BK,OP119,BP120,BS,BC0.0000 --DT01-18-1998 --TM06:14:54 LS,HI5.530,HR5.720 BD,OP119,FP120,AR0.0000,ZE89.1844,SD414.693,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 FD,OP119,FP1079,AR38.4913,ZE88.5151,SD907.565,--CK.,118 FR,OP119,FP1079,AR218.4916,ZE271.0804,SD907.565,--CK.,118 LS,HI5.530,HR5.720 BR,OP119,FP120,AR180.0002,ZE270.4103,SD414.693,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.720 BD,OP119,FP120,AR0.0004,ZE89.1848,SD414.696,--TPT.,5/8"IRW/P-CAP LS,HI5.530,HR5.480 FD,OP119,FP1079,AR38.4913,ZE88.5147,SD907.565,--CK.,118 FR,OP119,FP1079,AR218.4917,ZE271.0804,SD907.566,--CK.,118 LS,HI5.530,HR5.720 BR,OP119,FP120,AR180.0006,ZE270.4111,SD414.693,--TPT.,5/8"IRW/P-CAP --SS,OP119,FP120,AR0.0000,ZE89.1850,SD414.693750,--TPT.,5/8"IRW/P-CAP --LS,HI5.530000,HR5.480000 --SS,OP119,FP1079,AR38.4912,ZE88.5153,SD907.565250,--CK.,118 --LS,HI5.530000,HR5.720000 SS,OP119,FP1080,AR0.0007,ZE89.1847,SD414.695,--CK.,BS --DT01-18-1998 --TM06:16:25 OC,OP120,N 51364.80346,E 19832.99619,EL463.872,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 BK,OP120,BP119,BS,BC0.0000 BD,OP120,FP119,AR0.0000,ZE90.4122,SD414.693,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD414.664, Z459.075 --Measured: AR000'00", HD414.663, Z459.072 --Delta: AR000'00", HD-0.001, Z-0.004 SS,OP120,FP1081,AR359.5959,ZE90.4122,SD414.693,--CK.,BS --DT01-18-1998 --TM07:07:27 --Set Collection with Obs Order 123...321... OC,OP120,N 51364.80346,E 19832.99619,EL463.872,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 BK,OP120,BP119,BS,BC0.0000 --DT01-18-1998 --TM07:18:02 LS,HI5.720,HR5.530 BD,OP120,FP119,AR0.0000,ZE90.4108,SD414.690,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.820 FD,OP120,FP121,AR198.0743,ZE87.5057,SD799.142,--TPT.,5/8"IRW/P-CAP FR,OP120,FP121,AR18.0748,ZE272.0857,SD799.141,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 BR,OP120,FP119,AR180.0003,ZE269.1836,SD414.698,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 BD,OP120,FP119,AR0.0001,ZE90.4119,SD414.693,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.820 FD,OP120,FP121,AR198.0747,ZE87.5050,SD799.142,--TPT.,5/8"IRW/P-CAP FR,OP120,FP121,AR18.0750,ZE272.0855,SD799.141,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 BR,OP120,FP119,AR180.0002,ZE269.1829,SD414.695,--TPT.,5/8"IRW/P-CAP --SS,OP120,FP119,AR0.0000,ZE90.4121,SD414.694000,--TPT.,5/8"IRW/P-CAP --LS,HI5.720000,HR5.820000 --SS,OP120,FP121,AR198.0745,ZE87.5059,SD799.141500,--TPT.,5/8"IRW/P-CAP --LS,HI5.720000,HR5.530000 SS,OP120,FP1082,AR359.5958,ZE90.4124,SD414.694,--CK.,BS --DT01-18-1998 --TM07:19:18 OC,OP120,N 51364.80346,E 19832.99619,EL463.872,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.820 BK,OP120,BP121,BS,BC0.0000 BD,OP120,FP121,AR0.0000,ZE87.5058,SD799.140,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD798.579, Z493.757 --Measured: AR000'00", HD798.577, Z493.760 --Delta: AR000'00", HD-0.002, Z0.003 SS,OP120,FP1083,AR0.0000,ZE87.5056,SD799.141,--CK.,BS --DT01-18-1998 --TM07:21:23 --Set Collection with Obs Order 123...321... OC,OP120,N 51364.80346,E 19832.99619,EL463.872,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.820 BK,OP120,BP121,BS,BC0.0000 --DT01-18-1998 --TM07:26:43 LS,HI5.720,HR5.820 BD,OP120,FP121,AR0.0000,ZE87.5058,SD799.139,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 FD,OP120,FP1084,AR161.5207,ZE90.4113,SD414.695,--CK.,119 FR,OP120,FP1084,AR341.5213,ZE269.1817,SD414.693,--CK.,119 LS,HI5.720,HR5.820 BR,OP120,FP121,AR179.5959,ZE272.0903,SD799.142,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.820 BD,OP120,FP121,AR0.0003,ZE87.5050,SD799.144,--TPT.,5/8"IRW/P-CAP LS,HI5.720,HR5.530 FD,OP120,FP1084,AR161.5214,ZE90.4124,SD414.697,--CK.,119 FR,OP120,FP1084,AR341.5213,ZE269.1832,SD414.693,--CK.,119 LS,HI5.720,HR5.820 BR,OP120,FP121,AR179.5959,ZE272.0857,SD799.140,--TPT.,5/8"IRW/P-CAP --SS,OP120,FP121,AR0.0000,ZE87.5057,SD799.141250,--TPT.,5/8"IRW/P-CAP --LS,HI5.720000,HR5.530000 --SS,OP120,FP1084,AR161.5212,ZE90.4127,SD414.694500,--CK.,119 --LS,HI5.720000,HR5.820000 SS,OP120,FP1085,AR0.0000,ZE87.5056,SD799.141,--CK.,BS --DT01-18-1998 --TM07:27:39 OC,OP121,N 50598.30656,E 20057.07322,EL493.757,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.720 BK,OP121,BP120,BS,BC0.0000 BD,OP121,FP120,AR0.0000,ZE92.0914,SD799.143,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD798.579, Z463.872 --Measured: AR000'00", HD798.578, Z463.822 --Delta: AR000'00", HD-0.000, Z-0.049 SS,OP121,FP1086,AR359.5959,ZE92.0917,SD799.142,--CK.,BS --DT01-18-1998 --TM07:54:46 --Set Collection with Obs Order 123...321... OC,OP121,N 50598.30656,E 20057.07322,EL493.757,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.720 BK,OP121,BP120,BS,BC0.0000 --DT01-18-1998 --TM08:01:28 LS,HI5.820,HR5.720 BD,OP121,FP120,AR0.0000,ZE92.0919,SD799.142,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.680 FD,OP121,FP1087,AR201.4454,ZE89.2748,SD601.047,--CK.,103 FR,OP121,FP1087,AR21.4454,ZE270.3200,SD601.047,--CK.,103 LS,HI5.820,HR5.720 BR,OP121,FP120,AR179.5956,ZE267.5026,SD799.141,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.720 BD,OP121,FP120,AR359.5958,ZE92.0917,SD799.143,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.680 FD,OP121,FP1087,AR201.4457,ZE89.2751,SD601.047,--CK.,103 FR,OP121,FP1087,AR21.4452,ZE270.3200,SD601.047,--CK.,103 LS,HI5.820,HR5.720 BR,OP121,FP120,AR179.5956,ZE267.5029,SD799.142,--TPT.,5/8"IRW/P-CAP --SS,OP121,FP120,AR0.0000,ZE92.0925,SD799.142000,--TPT.,5/8"IRW/P-CAP --LS,HI5.820000,HR5.680000 --SS,OP121,FP1087,AR201.4457,ZE89.2755,SD601.047000,--CK.,103 --LS,HI5.820000,HR5.720000 LS,HI5.820,HR5.680 SS,OP121,FP1088,AR359.5953,ZE92.0912,SD799.141,--CK.,BS --DT01-18-1998 --TM08:02:44 OC,OP121,N 50598.30656,E 20057.07322,EL493.757,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.680 BK,OP121,BP1087,BS,BC0.0000 BD,OP121,FP1087,AR0.0000,ZE89.2749,SD601.046,--CK.,103 --Calculated: AR000'00", HD601.021, Z499.507 --Measured: AR000'00", HD601.020, Z499.524 --Delta: AR000'00", HD-0.001, Z0.017 SS,OP121,FP1089,AR0.0001,ZE89.2750,SD601.046,--CK.,BS --DT01-18-1998 --TM08:05:43 --Set Collection with Obs Order 123...321... OC,OP121,N 50598.30656,E 20057.07322,EL493.757,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.680 BK,OP121,BP1087,BS,BC0.0000 --DT01-18-1998 --TM08:09:47 LS,HI5.820,HR5.680 BD,OP121,FP1087,AR0.0000,ZE89.2751,SD601.045,--CK.,103 LS,HI5.820,HR5.720 FD,OP121,FP1090,AR158.1459,ZE92.0917,SD799.140,--CK.,120 FR,OP121,FP1090,AR338.1500,ZE267.5022,SD799.142,--CK.,120 LS,HI5.820,HR5.680 BR,OP121,FP1087,AR179.5958,ZE270.3200,SD601.046,--CK.,103 LS,HI5.820,HR5.680 BD,OP121,FP1087,AR359.5959,ZE89.2751,SD601.047,--CK.,103 LS,HI5.820,HR5.720 FD,OP121,FP1090,AR158.1502,ZE92.0916,SD799.143,--CK.,120 FR,OP121,FP1090,AR338.1500,ZE267.5026,SD799.145,--CK.,120 LS,HI5.820,HR5.680 BR,OP121,FP1087,AR179.5957,ZE270.3200,SD601.047,--CK.,103 --SS,OP121,FP1087,AR0.0000,ZE89.2755,SD601.046250,--CK.,103 --LS,HI5.820000,HR5.720000 --SS,OP121,FP1090,AR158.1502,ZE92.0926,SD799.142500,--CK.,120 --LS,HI5.820000,HR5.680000 SS,OP121,FP1091,AR0.0002,ZE89.2749,SD601.046,--CK.,BS --DT01-18-1998 --TM08:10:45 --Equipment: Manual Total Station --TS Scale: 1.00000000 --EDM Mode: OC,OP121,N 50598.30656,E 20057.07322,EL493.757,--TPT.,5/8"IRW/P-CAP LS,HI5.820,HR5.680 BK,OP121,BP120,BS,BC0.0000 BD,OP121,FP120,AR0.0000,ZE90.0000,SD0.000,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00" --Measured: AR000'00" --Delta: AR000'00" --Equipment: Leica TPS Series --TS Scale: 1.00000000 --EDM Mode: Standard OC,OP1087,N 50000.00606,E 19999.95461,EL499.507,--CK.,103 LS,HI5.680,HR5.820 BK,OP1087,BP121,BS,BC0.0000 BD,OP1087,FP121,AR0.0000,ZE90.3229,SD601.046,--TPT.,5/8"IRW/P-CAP --Calculated: AR000'00", HD601.021, Z493.757 --Measured: AR000'00", HD601.019, Z493.688 --Delta: AR000'00", HD-0.002, Z-0.069 SS,OP1087,FP1092,AR0.0000,ZE90.3231,SD601.046,--CK.,BS --DT01-18-1998 --TM08:39:31 --Set Collection with Obs Order 123...321... OC,OP1087,N 50000.00606,E 19999.95461,EL499.507,--CK.,103 LS,HI5.680,HR5.820 BK,OP1087,BP121,BS,BC0.0000 --DT01-18-1998 --TM08:44:54 LS,HI5.680,HR5.820 BD,OP1087,FP121,AR0.0000,ZE90.3211,SD601.046,--TPT.,5/8"IRW/P-CAP LS,HI5.680,HR5.660 FD,OP1087,FP1093,AR84.3256,ZE89.0510,SD1086.001,--CK.,104 FR,OP1087,FP1093,AR264.3303,ZE270.5439,SD1086.001,--CK.,104 LS,HI5.680,HR5.820 BR,OP1087,FP121,AR179.5958,ZE269.2748,SD601.047,--TPT.,5/8"IRW/P-CAP LS,HI5.680,HR5.820 BD,OP1087,FP121,AR0.0003,ZE90.3208,SD601.047,--TPT.,5/8"IRW/P-CAP LS,HI5.680,HR5.660 FD,OP1087,FP1093,AR84.3254,ZE89.0512,SD1086.001,--CK.,104 FR,OP1087,FP1093,AR264.3251,ZE270.5439,SD1086.002,--CK.,104 LS,HI5.680,HR5.820 BR,OP1087,FP121,AR179.5958,ZE269.2734,SD601.046,--TPT.,5/8"IRW/P-CAP --SS,OP1087,FP121,AR0.0000,ZE90.3214,SD601.046500,--TPT.,5/8"IRW/P-CAP --LS,HI5.680000,HR5.660000 --SS,OP1087,FP1093,AR84.3256,ZE89.0516,SD1086.001250,--CK.,104 --LS,HI5.680000,HR5.820000 SS,OP1087,FP1094,AR359.5958,ZE90.3221,SD601.047,--CK.,BS --DT01-18-1998 --TM08:46:09 OC,OP1087,N 50000.00606,E 19999.95461,EL499.507,--CK.,103 LS,HI5.680,HR5.660 BK,OP1087,BP1093,BS,BC0.0000 BD,OP1087,FP1093,AR0.0000,ZE89.0512,SD1086.000,--CK.,104 --Calculated: AR000'00", HD1085.864, Z516.817 --Measured: AR000'00", HD1085.862, Z516.838 --Delta: AR000'00", HD-0.002, Z0.021 SS,OP1087,FP1095,AR0.0000,ZE89.0512,SD1086.000,--CK.,BS --DT01-18-1998 --TM08:49:07 --Set Collection with Obs Order 123...321... OC,OP1087,N 50000.00606,E 19999.95461,EL499.507,--CK.,103 LS,HI5.680,HR5.660 BK,OP1087,BP1093,BS,BC0.0000 --DT01-18-1998 --TM08:53:05 LS,HI5.680,HR5.660 BD,OP1087,FP1093,AR0.0000,ZE89.0514,SD1085.999,--CK.,104 LS,HI5.680,HR5.820 FD,OP1087,FP1096,AR275.2715,ZE90.3221,SD601.047,--CK.,121 FR,OP1087,FP1096,AR95.2708,ZE269.2743,SD601.046,--CK.,121 LS,HI5.680,HR5.660 BR,OP1087,FP1093,AR180.0001,ZE270.5442,SD1086.000,--CK.,104 LS,HI5.680,HR5.660 BD,OP1087,FP1093,AR0.0002,ZE89.0512,SD1086.000,--CK.,104 LS,HI5.680,HR5.820 FD,OP1087,FP1096,AR275.2715,ZE90.3218,SD601.046,--CK.,121 FR,OP1087,FP1096,AR95.2710,ZE269.2745,SD601.046,--CK.,121 LS,HI5.680,HR5.660 BR,OP1087,FP1093,AR180.0001,ZE270.5444,SD1086.001,--CK.,104 --SS,OP1087,FP1093,AR0.0000,ZE89.0515,SD1086.000000,--CK.,104 --LS,HI5.680000,HR5.820000 --SS,OP1087,FP1096,AR275.2711,ZE90.3218,SD601.046250,--CK.,121 --LS,HI5.680000,HR5.660000 SS,OP1087,FP1097,AR359.5959,ZE89.0509,SD1086.001,--CK.,BS --DT01-18-1998 --TM08:54:20 totalopenstation-0.5.3/sample_data/landxml.xml000066400000000000000000000046601477035261600216020ustar00rootroot00000000000000 519.659 465.244 -0.588 524.441 445.069 0.388 449.72 444.915 1.932 515.429 442.66 -1.734 515.251 442.696 -1.77 totalopenstation-0.5.3/sample_data/leica_gsi/000077500000000000000000000000001477035261600213325ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/leica_gsi/leica_gsi16_gurob.gsi000066400000000000000000001617071477035261600253360ustar00rootroot00000000000000*110002+00000000GDEM5415 21.024+0000000003545100 22.024+0000000009117510 31...0+0000000000013825 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110003+00000000GDEM5416 21.024+0000000003411240 22.024+0000000009248200 31...0+0000000000020527 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110004+00000000GDEM5417 21.024+0000000003349200 22.024+0000000009338510 31...0+0000000000028609 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110005+00000000GDEM5418 21.024+0000000003231250 22.024+0000000009247570 31...0+0000000000035487 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110006+00000000GDEM5419 21.024+0000000003225480 22.024+0000000009145240 31...0+0000000000042459 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110007+00000000GDEM5420 21.024+0000000003244000 22.024+0000000009102210 31...0+0000000000049880 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110008+00000000GDEM5421 21.024+0000000003240260 22.024+0000000009050110 31...0+0000000000056728 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110009+00000000GDEM5422 21.024+0000000003246280 22.024+0000000009043250 31...0+0000000000063095 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110010+00000000GDEM5423 21.024+0000000003226150 22.024+0000000009046130 31...0+0000000000070866 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110011+00000000GDEM5424 21.024+0000000003226450 22.024+0000000009047310 31...0+0000000000078201 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110012+00000000GDEM5425 21.024+0000000003226050 22.024+0000000009042380 31...0+0000000000085351 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110013+00000000GDEM5426 21.024+0000000003225380 22.024+0000000009044140 31...0+0000000000091842 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110014+00000000GDEM5427 21.024+0000000003230120 22.024+0000000009042510 31...0+0000000000098845 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110015+00000000GDEM5428 21.024+0000000003233480 22.024+0000000009037580 31...0+0000000000106230 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110016+00000000GDEM5429 21.024+0000000003236310 22.024+0000000009050560 31...0+0000000000111912 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110017+00000000GDEM5430 21.024+0000000003241510 22.024+0000000009054040 31...0+0000000000117913 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110018+00000000GDEM5431 21.024+0000000003239180 22.024+0000000009045120 31...0+0000000000125024 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110019+00000000GDEM5432 21.024+0000000003237560 22.024+0000000009057200 31...0+0000000000131865 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110020+00000000GDEM5433 21.024+0000000003232270 22.024+0000000009038240 31...0+0000000000138192 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110021+00000000GDEM5434 21.024+0000000003230160 22.024+0000000009035030 31...0+0000000000144301 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110022+00000000GDEM5435 21.024+0000000003232480 22.024+0000000009038470 31...0+0000000000150126 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110023+00000000GDEM5436 21.024+0000000003234150 22.024+0000000009042260 31...0+0000000000153311 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110024+00000000GDEM5437 21.024+0000000003459220 22.024+0000000009046550 31...0+0000000000154795 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110025+00000000GDEM5438 21.024+0000000003510230 22.024+0000000009043170 31...0+0000000000148108 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110026+00000000GDEM5439 21.024+0000000003518340 22.024+0000000009043240 31...0+0000000000141694 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110027+00000000GDEM5440 21.024+0000000003533270 22.024+0000000009101020 31...0+0000000000135391 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110028+00000000GDEM5441 21.024+0000000003548030 22.024+0000000009059450 31...0+0000000000128130 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110029+00000000GDEM5442 21.024+0000000003603000 22.024+0000000009103160 31...0+0000000000122116 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110030+00000000GDEM5443 21.024+0000000003617080 22.024+0000000009057200 31...0+0000000000115394 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110031+00000000GDEM5444 21.024+0000000003631540 22.024+0000000009103110 31...0+0000000000108438 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110032+00000000GDEM5445 21.024+0000000003648180 22.024+0000000009100170 31...0+0000000000102326 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110033+00000000GDEM5446 21.024+0000000003655430 22.024+0000000009053010 31...0+0000000000097167 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110034+00000000GDEM5447 21.024+0000000003710250 22.024+0000000009057470 31...0+0000000000090574 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110035+00000000GDEM5448 21.024+0000000003733580 22.024+0000000009104340 31...0+0000000000083918 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110036+00000000GDEM5449 21.024+0000000003807260 22.024+0000000009124380 31...0+0000000000078110 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110037+00000000GDEM5450 21.024+0000000003831470 22.024+0000000009123310 31...0+0000000000072919 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110038+00000000GDEM5451 21.024+0000000003919330 22.024+0000000009122580 31...0+0000000000067395 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110039+00000000GDEM5452 21.024+0000000004005300 22.024+0000000009152140 31...0+0000000000060961 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110040+00000000GDEM5453 21.024+0000000004054200 22.024+0000000009135390 31...0+0000000000054997 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110041+00000000GDEM5454 21.024+0000000004151140 22.024+0000000009142240 31...0+0000000000049119 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110042+00000000GDEM5455 21.024+0000000004316560 22.024+0000000009236020 31...0+0000000000043087 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110043+00000000GDEM5456 21.024+0000000004454520 22.024+0000000009333170 31...0+0000000000036839 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110044+00000000GDEM5457 21.024+0000000004726060 22.024+0000000009424180 31...0+0000000000030586 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110045+00000000GDEM5458 21.024+0000000005254090 22.024+0000000009324370 31...0+0000000000021343 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110046+00000000GDEM5459 21.024+0000000005850430 22.024+0000000009243500 31...0+0000000000016429 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110047+00000000GDEM5460 21.024+0000000007356300 22.024+0000000009340370 31...0+0000000000010210 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110048+00000000GDEM5461 21.024+0000000010921470 22.024+0000000009546500 31...0+0000000000006337 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110049+00000000GDEM5462 21.024+0000000011908360 22.024+0000000009524460 31...0+0000000000012827 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110050+00000000GDEM5463 21.024+0000000009208400 22.024+0000000009349190 31...0+0000000000014489 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110051+00000000GDEM5464 21.024+0000000007341000 22.024+0000000009409300 31...0+0000000000018464 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110052+00000000GDEM5465 21.024+0000000006316060 22.024+0000000009417250 31...0+0000000000023660 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110053+00000000GDEM5466 21.024+0000000005603050 22.024+0000000009455150 31...0+0000000000029811 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110054+00000000GDEM5467 21.024+0000000005215570 22.024+0000000009418030 31...0+0000000000035217 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110055+00000000GDEM5468 21.024+0000000004857250 22.024+0000000009254230 31...0+0000000000042143 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110056+00000000GDEM5469 21.024+0000000004643470 22.024+0000000009204020 31...0+0000000000048291 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110057+00000000GDEM5470 21.024+0000000004403030 22.024+0000000009146140 31...0+0000000000055590 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110058+00000000GDEM5471 21.024+0000000004231010 22.024+0000000009156030 31...0+0000000000063496 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110059+00000000GDEM5472 21.024+0000000004133390 22.024+0000000009131090 31...0+0000000000071749 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110060+00000000GDEM5473 21.024+0000000004106440 22.024+0000000009127120 31...0+0000000000079606 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110061+00000000GDEM5474 21.024+0000000004029420 22.024+0000000009114160 31...0+0000000000087154 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110062+00000000GDEM5475 21.024+0000000003951270 22.024+0000000009105210 31...0+0000000000094336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110063+00000000GDEM5476 21.024+0000000003920500 22.024+0000000009114010 31...0+0000000000101918 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110064+00000000GDEM5477 21.024+0000000003854160 22.024+0000000009108580 31...0+0000000000110011 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110065+00000000GDEM5478 21.024+0000000003824400 22.024+0000000009111440 31...0+0000000000117775 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110066+00000000GDEM5479 21.024+0000000003803550 22.024+0000000009103140 31...0+0000000000124753 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110067+00000000GDEM5480 21.024+0000000003741040 22.024+0000000009101400 31...0+0000000000132434 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110068+00000000GDEM5481 21.024+0000000003727210 22.024+0000000009059280 31...0+0000000000139744 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110069+00000000GDEM5482 21.024+0000000003718500 22.024+0000000009048390 31...0+0000000000147089 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110070+00000000GDEM5483 21.024+0000000003709490 22.024+0000000009054290 31...0+0000000000155483 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110071+00000000GDEM5484 21.024+0000000003912410 22.024+0000000009106220 31...0+0000000000157432 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110072+00000000GDEM5485 21.024+0000000003918560 22.024+0000000009056230 31...0+0000000000152866 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110073+00000000GDEM5486 21.024+0000000003950320 22.024+0000000009100330 31...0+0000000000145540 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110074+00000000GDEM5487 21.024+0000000004024460 22.024+0000000009106160 31...0+0000000000138373 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110075+00000000GDEM5488 21.024+0000000004057230 22.024+0000000009114420 31...0+0000000000131145 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110076+00000000GDEM5489 21.024+0000000004120260 22.024+0000000009119240 31...0+0000000000125336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110077+00000000GDEM5490 21.024+0000000004156520 22.024+0000000009131310 31...0+0000000000119043 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110078+00000000GDEM5491 21.024+0000000004237330 22.024+0000000009119500 31...0+0000000000112479 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110079+00000000GDEM5492 21.024+0000000004328270 22.024+0000000009119020 31...0+0000000000105008 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110080+00000000GDEM5493 21.024+0000000004415010 22.024+0000000009104560 31...0+0000000000097772 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110081+00000000GDEM5494 21.024+0000000004520120 22.024+0000000009125050 31...0+0000000000092533 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110082+00000000GDEM5495 21.024+0000000004617210 22.024+0000000009124130 31...0+0000000000086694 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110083+00000000GDEM5496 21.024+0000000004717240 22.024+0000000009203050 31...0+0000000000081584 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110084+00000000GDEM5497 21.024+0000000004857370 22.024+0000000009226380 31...0+0000000000074896 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110085+00000000GDEM5498 21.024+0000000005047580 22.024+0000000009229580 31...0+0000000000068496 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110086+00000000GDEM5499 21.024+0000000005228390 22.024+0000000009231320 31...0+0000000000062792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110087+00000000GDEM5500 21.024+0000000005409030 22.024+0000000009155580 31...0+0000000000057944 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110088+00000000GDEM5501 21.024+0000000005624310 22.024+0000000009222470 31...0+0000000000051745 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110089+00000000GDEM5502 21.024+0000000005939380 22.024+0000000009303120 31...0+0000000000045723 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110090+00000000GDEM5503 21.024+0000000006324060 22.024+0000000009353550 31...0+0000000000040336 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110091+00000000GDEM5504 21.024+0000000006952370 22.024+0000000009452270 31...0+0000000000033821 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110092+00000000GDEM5505 21.024+0000000007617520 22.024+0000000009441160 31...0+0000000000029028 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110093+00000000GDEM5506 21.024+0000000008452370 22.024+0000000009440020 31...0+0000000000024524 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110094+00000000GDEM5507 21.024+0000000009730150 22.024+0000000009532170 31...0+0000000000021877 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110095+00000000GDEM5508 21.024+0000000011124160 22.024+0000000009457390 31...0+0000000000019701 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110096+00000000GDEM5509 21.024+0000000011211220 22.024+0000000009544490 31...0+0000000000025032 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110097+00000000GDEM5510 21.024+0000000009823420 22.024+0000000009524120 31...0+0000000000026732 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110098+00000000GDEM5511 21.024+0000000008622310 22.024+0000000009453020 31...0+0000000000029955 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110099+00000000GDEM5512 21.024+0000000007726130 22.024+0000000009508000 31...0+0000000000033983 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110100+00000000GDEM5513 21.024+0000000007037570 22.024+0000000009443360 31...0+0000000000038853 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110101+00000000GDEM5514 21.024+0000000006552060 22.024+0000000009333040 31...0+0000000000043375 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110102+00000000GDEM5515 21.024+0000000006121370 22.024+0000000009257030 31...0+0000000000049281 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110103+00000000GDEM5516 21.024+0000000005812300 22.024+0000000009210340 31...0+0000000000054792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110104+00000000GDEM5517 21.024+0000000005529260 22.024+0000000009155530 31...0+0000000000060101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110105+00000000GDEM5518 21.024+0000000005301580 22.024+0000000009220380 31...0+0000000000066205 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110106+00000000GDEM5519 21.024+0000000005048040 22.024+0000000009225130 31...0+0000000000072712 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110107+00000000GDEM5520 21.024+0000000004937100 22.024+0000000009225080 31...0+0000000000078355 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110108+00000000GDEM5521 21.024+0000000004842390 22.024+0000000009157390 31...0+0000000000083621 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110109+00000000GDEM5522 21.024+0000000004738190 22.024+0000000009124580 31...0+0000000000088793 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110110+00000000GDEM5523 21.024+0000000004629040 22.024+0000000009135590 31...0+0000000000095478 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110111+00000000GDEM5524 21.024+0000000004549520 22.024+0000000009119530 31...0+0000000000100715 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110112+00000000GDEM5525 21.024+0000000004507070 22.024+0000000009120580 31...0+0000000000106933 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110113+00000000GDEM5526 21.024+0000000004416360 22.024+0000000009122320 31...0+0000000000113619 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110114+00000000GDEM5527 21.024+0000000004327380 22.024+0000000009134460 31...0+0000000000120698 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110115+00000000GDEM5528 21.024+0000000004252030 22.024+0000000009132560 31...0+0000000000127623 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110116+00000000GDEM5529 21.024+0000000004224260 22.024+0000000009122070 31...0+0000000000133298 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110117+00000000GDEM5530 21.024+0000000004203540 22.024+0000000009119300 31...0+0000000000139162 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110118+00000000GDEM5531 21.024+0000000004145160 22.024+0000000009118210 31...0+0000000000145579 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110119+00000000GDEM5532 21.024+0000000004133140 22.024+0000000009108050 31...0+0000000000151847 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110120+00000000GDEM5533 21.024+0000000004116390 22.024+0000000009104540 31...0+0000000000158690 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110098+00000000GDEM5511 21.024+0000000008622310 22.024+0000000009453020 31...0+0000000000029955 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110099+00000000GDEM5512 21.024+0000000007726130 22.024+0000000009508000 31...0+0000000000033983 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110100+00000000GDEM5513 21.024+0000000007037570 22.024+0000000009443360 31...0+0000000000038853 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110101+00000000GDEM5514 21.024+0000000006552060 22.024+0000000009333040 31...0+0000000000043375 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110102+00000000GDEM5515 21.024+0000000006121370 22.024+0000000009257030 31...0+0000000000049281 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110103+00000000GDEM5516 21.024+0000000005812300 22.024+0000000009210340 31...0+0000000000054792 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110104+00000000GDEM5517 21.024+0000000005529260 22.024+0000000009155530 31...0+0000000000060101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110105+00000000GDEM5518 21.024+0000000005301580 22.024+0000000009220380 31...0+0000000000066205 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110106+00000000GDEM5519 21.024+0000000005048040 22.024+0000000009225130 31...0+0000000000072712 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110107+00000000GDEM5520 21.024+0000000004937100 22.024+0000000009225080 31...0+0000000000078355 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110108+00000000GDEM5521 21.024+0000000004842390 22.024+0000000009157390 31...0+0000000000083621 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110109+00000000GDEM5522 21.024+0000000004738190 22.024+0000000009124580 31...0+0000000000088793 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110110+00000000GDEM5523 21.024+0000000004629040 22.024+0000000009135590 31...0+0000000000095478 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110111+00000000GDEM5524 21.024+0000000004549520 22.024+0000000009119530 31...0+0000000000100715 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110112+00000000GDEM5525 21.024+0000000004507070 22.024+0000000009120580 31...0+0000000000106933 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110113+00000000GDEM5526 21.024+0000000004416360 22.024+0000000009122320 31...0+0000000000113619 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110114+00000000GDEM5527 21.024+0000000004327380 22.024+0000000009134460 31...0+0000000000120698 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110115+00000000GDEM5528 21.024+0000000004252030 22.024+0000000009132560 31...0+0000000000127623 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110116+00000000GDEM5529 21.024+0000000004224260 22.024+0000000009122070 31...0+0000000000133298 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110117+00000000GDEM5530 21.024+0000000004203540 22.024+0000000009119300 31...0+0000000000139162 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110118+00000000GDEM5531 21.024+0000000004145160 22.024+0000000009118210 31...0+0000000000145579 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110119+00000000GDEM5532 21.024+0000000004133140 22.024+0000000009108050 31...0+0000000000151847 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110120+00000000GDEM5533 21.024+0000000004116390 22.024+0000000009104540 31...0+0000000000158690 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110121+00000000GDEM5534 21.024+0000000004316120 22.024+0000000009106360 31...0+0000000000160807 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110122+00000000GDEM5535 21.024+0000000004333560 22.024+0000000009111020 31...0+0000000000154541 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110123+00000000GDEM5536 21.024+0000000004348310 22.024+0000000009125430 31...0+0000000000148046 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110124+00000000GDEM5537 21.024+0000000004409300 22.024+0000000009128360 31...0+0000000000141416 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110125+00000000GDEM5538 21.024+0000000004429440 22.024+0000000009129410 31...0+0000000000135213 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110126+00000000GDEM5539 21.024+0000000004455190 22.024+0000000009148480 31...0+0000000000129100 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110127+00000000GDEM5540 21.024+0000000004524350 22.024+0000000009151470 31...0+0000000000123442 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110128+00000000GDEM5541 21.024+0000000004547330 22.024+0000000009135550 31...0+0000000000118169 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110129+00000000GDEM5542 21.024+0000000004641570 22.024+0000000009126140 31...0+0000000000111882 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110130+00000000GDEM5543 21.024+0000000004722490 22.024+0000000009130500 31...0+0000000000105529 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110131+00000000GDEM5544 21.024+0000000004812480 22.024+0000000009119200 31...0+0000000000100584 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110132+00000000GDEM5545 21.024+0000000004937060 22.024+0000000009119310 31...0+0000000000095027 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110133+00000000GDEM5546 21.024+0000000005037150 22.024+0000000009132530 31...0+0000000000089968 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110134+00000000GDEM5547 21.024+0000000005129370 22.024+0000000009131410 31...0+0000000000084231 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110135+00000000GDEM5548 21.024+0000000005241000 22.024+0000000009223140 31...0+0000000000080119 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110136+00000000GDEM5549 21.024+0000000005435350 22.024+0000000009244330 31...0+0000000000074704 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110137+00000000GDEM5550 21.024+0000000005640080 22.024+0000000009224440 31...0+0000000000069808 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110138+00000000GDEM5551 21.024+0000000005858070 22.024+0000000009208240 31...0+0000000000064417 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110139+00000000GDEM5552 21.024+0000000006139490 22.024+0000000009217430 31...0+0000000000059185 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110140+00000000GDEM5553 21.024+0000000006523100 22.024+0000000009227110 31...0+0000000000053031 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110141+00000000GDEM5554 21.024+0000000006954560 22.024+0000000009312530 31...0+0000000000047765 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110142+00000000GDEM5555 21.024+0000000007510330 22.024+0000000009436540 31...0+0000000000043008 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110143+00000000GDEM5556 21.024+0000000008053400 22.024+0000000009529200 31...0+0000000000039042 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110144+00000000GDEM5557 21.024+0000000008914090 22.024+0000000009620500 31...0+0000000000035368 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110145+00000000GDEM5558 21.024+0000000009749530 22.024+0000000009633080 31...0+0000000000032655 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110146+00000000GDEM5559 21.024+0000000010756430 22.024+0000000009648520 31...0+0000000000030659 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110147+00000000GDEM5560 21.024+0000000011445040 22.024+0000000009709480 31...0+0000000000033605 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110148+00000000GDEM5561 21.024+0000000010629230 22.024+0000000009535080 31...0+0000000000034399 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110149+00000000GDEM5562 21.024+0000000009759100 22.024+0000000009537310 31...0+0000000000036292 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110150+00000000GDEM5563 21.024+0000000009000500 22.024+0000000009444000 31...0+0000000000039677 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110151+00000000GDEM5564 21.024+0000000008345000 22.024+0000000009335280 31...0+0000000000043413 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110152+00000000GDEM5565 21.024+0000000007844340 22.024+0000000009413470 31...0+0000000000047213 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110153+00000000GDEM5566 21.024+0000000007429370 22.024+0000000009258390 31...0+0000000000051614 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110154+00000000GDEM5567 21.024+0000000007130430 22.024+0000000009148250 31...0+0000000000054245 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110155+00000000GDEM5568 21.024+0000000006754040 22.024+0000000009149400 31...0+0000000000059449 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110156+00000000GDEM5569 21.024+0000000006522310 22.024+0000000009222280 31...0+0000000000063708 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110157+00000000GDEM5570 21.024+0000000006315590 22.024+0000000009200400 31...0+0000000000068142 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110158+00000000GDEM5571 21.024+0000000006028370 22.024+0000000009218290 31...0+0000000000074735 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110159+00000000GDEM5572 21.024+0000000005758130 22.024+0000000009236440 31...0+0000000000081611 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110160+00000000GDEM5573 21.024+0000000005550510 22.024+0000000009141190 31...0+0000000000090233 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110161+00000000GDEM5574 21.024+0000000005444040 22.024+0000000009112550 31...0+0000000000094763 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110162+00000000GDEM5575 21.024+0000000005302130 22.024+0000000009123540 31...0+0000000000101806 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110163+00000000GDEM5576 21.024+0000000005205100 22.024+0000000009155140 31...0+0000000000107078 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110164+00000000GDEM5577 21.024+0000000005049510 22.024+0000000009145280 31...0+0000000000114104 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110165+00000000GDEM5578 21.024+0000000004941540 22.024+0000000009151090 31...0+0000000000120263 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110166+00000000GDEM5579 21.024+0000000004839140 22.024+0000000009147050 31...0+0000000000127501 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110167+00000000GDEM5580 21.024+0000000004801310 22.024+0000000009135220 31...0+0000000000133079 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110168+00000000GDEM5581 21.024+0000000004718000 22.024+0000000009133040 31...0+0000000000139349 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110169+00000000GDEM5582 21.024+0000000004637320 22.024+0000000009122180 31...0+0000000000145856 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110170+00000000GDEM5583 21.024+0000000004604340 22.024+0000000009109120 31...0+0000000000151454 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110171+00000000GDEM5584 21.024+0000000004534590 22.024+0000000009102550 31...0+0000000000157733 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110172+00000000GDEM5585 21.024+0000000004515460 22.024+0000000009049480 31...0+0000000000161473 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110173+00000000GDEM5586 21.024+0000000004636060 22.024+0000000009115140 31...0+0000000000163316 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110174+00000000GDEM5587 21.024+0000000004705590 22.024+0000000009104500 31...0+0000000000158425 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110175+00000000GDEM5588 21.024+0000000004738310 22.024+0000000009117010 31...0+0000000000153535 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110176+00000000GDEM5589 21.024+0000000004759350 22.024+0000000009110470 31...0+0000000000148989 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110177+00000000GDEM5590 21.024+0000000004813260 22.024+0000000009127070 31...0+0000000000144457 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110178+00000000GDEM5591 21.024+0000000004914220 22.024+0000000009136370 31...0+0000000000139542 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110179+00000000GDEM5592 21.024+0000000004956400 22.024+0000000009145030 31...0+0000000000134525 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110180+00000000GDEM5593 21.024+0000000005054530 22.024+0000000009149280 31...0+0000000000127899 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110181+00000000GDEM5594 21.024+0000000005220070 22.024+0000000009154580 31...0+0000000000120682 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110182+00000000GDEM5595 21.024+0000000005318550 22.024+0000000009205410 31...0+0000000000114118 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110183+00000000GDEM5596 21.024+0000000005402400 22.024+0000000009211070 31...0+0000000000108656 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110184+00000000GDEM5597 21.024+0000000005524550 22.024+0000000009202020 31...0+0000000000103190 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110185+00000000GDEM5598 21.024+0000000005645120 22.024+0000000009148500 31...0+0000000000098181 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110186+00000000GDEM5599 21.024+0000000005758370 22.024+0000000009141580 31...0+0000000000093672 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110187+00000000GDEM5600 21.024+0000000005925280 22.024+0000000009200520 31...0+0000000000089306 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110188+00000000GDEM5601 21.024+0000000006103100 22.024+0000000009249580 31...0+0000000000084745 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110189+00000000GDEM5602 21.024+0000000006330380 22.024+0000000009253570 31...0+0000000000079325 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110190+00000000GDEM5603 21.024+0000000006553490 22.024+0000000009256240 31...0+0000000000074364 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110191+00000000GDEM5604 21.024+0000000006852560 22.024+0000000009300540 31...0+0000000000068985 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110192+00000000GDEM5605 21.024+0000000007132550 22.024+0000000009326240 31...0+0000000000065641 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110193+00000000GDEM5606 21.024+0000000007407290 22.024+0000000009333420 31...0+0000000000062071 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110194+00000000GDEM5607 21.024+0000000007745070 22.024+0000000009409000 31...0+0000000000057914 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110195+00000000GDEM5608 21.024+0000000008208310 22.024+0000000009509310 31...0+0000000000053863 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110196+00000000GDEM5609 21.024+0000000008700250 22.024+0000000009511320 31...0+0000000000050162 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110197+00000000GDEM5610 21.024+0000000009039050 22.024+0000000009428540 31...0+0000000000047699 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110198+00000000GDEM5611 21.024+0000000009736220 22.024+0000000009443150 31...0+0000000000044189 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110199+00000000GDEM5612 21.024+0000000010509030 22.024+0000000009528590 31...0+0000000000041892 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110200+00000000GDEM5613 21.024+0000000011329140 22.024+0000000009705530 31...0+0000000000039888 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110201+00000000GDEM5614 21.024+0000000011625520 22.024+0000000009624120 31...0+0000000000045390 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110202+00000000GDEM5615 21.024+0000000010819200 22.024+0000000009530260 31...0+0000000000046720 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110203+00000000GDEM5616 21.024+0000000010053050 22.024+0000000009453530 31...0+0000000000048824 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110204+00000000GDEM5617 21.024+0000000009424450 22.024+0000000009431180 31...0+0000000000051448 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110205+00000000GDEM5618 21.024+0000000008837130 22.024+0000000009536210 31...0+0000000000054577 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110206+00000000GDEM5619 21.024+0000000008326590 22.024+0000000009522340 31...0+0000000000058545 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110207+00000000GDEM5620 21.024+0000000007902480 22.024+0000000009442330 31...0+0000000000062837 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110208+00000000GDEM5621 21.024+0000000007527120 22.024+0000000009342300 31...0+0000000000066772 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110209+00000000GDEM5622 21.024+0000000007202520 22.024+0000000009325170 31...0+0000000000071463 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110210+00000000GDEM5623 21.024+0000000006902430 22.024+0000000009325180 31...0+0000000000076235 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110211+00000000GDEM5624 21.024+0000000006615220 22.024+0000000009319280 31...0+0000000000081457 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110212+00000000GDEM5625 21.024+0000000006348310 22.024+0000000009255390 31...0+0000000000087530 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110213+00000000GDEM5626 21.024+0000000006158270 22.024+0000000009225340 31...0+0000000000092807 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110214+00000000GDEM5627 21.024+0000000006002460 22.024+0000000009214110 31...0+0000000000098995 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110215+00000000GDEM5628 21.024+0000000005830110 22.024+0000000009207490 31...0+0000000000103957 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110216+00000000GDEM5629 21.024+0000000005649460 22.024+0000000009218420 31...0+0000000000110149 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110217+00000000GDEM5630 21.024+0000000005521180 22.024+0000000009203380 31...0+0000000000116129 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110218+00000000GDEM5631 21.024+0000000005409300 22.024+0000000009157240 31...0+0000000000121709 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110219+00000000GDEM5632 21.024+0000000005253390 22.024+0000000009151170 31...0+0000000000128058 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110220+00000000GDEM5633 21.024+0000000005148560 22.024+0000000009153260 31...0+0000000000134404 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110221+00000000GDEM5634 21.024+0000000005052200 22.024+0000000009148440 31...0+0000000000142369 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110222+00000000GDEM5635 21.024+0000000005012230 22.024+0000000009132220 31...0+0000000000148882 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110223+00000000GDEM5636 21.024+0000000004936470 22.024+0000000009129230 31...0+0000000000155096 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110224+00000000GDEM5637 21.024+0000000004904150 22.024+0000000009123080 31...0+0000000000160202 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110225+00000000GDEM5638 21.024+0000000004834340 22.024+0000000009124560 31...0+0000000000165380 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110226+00000000GDEM5639 21.024+0000000005010410 22.024+0000000009117260 31...0+0000000000166379 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110227+00000000GDEM5640 21.024+0000000005036580 22.024+0000000009125190 31...0+0000000000160404 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110228+00000000GDEM5641 21.024+0000000005118590 22.024+0000000009125550 31...0+0000000000153850 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110229+00000000GDEM5642 21.024+0000000005148500 22.024+0000000009112310 31...0+0000000000150220 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110230+00000000GDEM5643 21.024+0000000005234310 22.024+0000000009114440 31...0+0000000000145491 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110231+00000000GDEM5644 21.024+0000000005324130 22.024+0000000009123430 31...0+0000000000139924 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110232+00000000GDEM5645 21.024+0000000005354130 22.024+0000000009140150 31...0+0000000000134863 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110233+00000000GDEM5646 21.024+0000000005438080 22.024+0000000009141040 31...0+0000000000129657 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110234+00000000GDEM5647 21.024+0000000005537140 22.024+0000000009146310 31...0+0000000000124860 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110235+00000000GDEM5648 21.024+0000000005640380 22.024+0000000009202300 31...0+0000000000119190 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110236+00000000GDEM5649 21.024+0000000005823430 22.024+0000000009219160 31...0+0000000000113731 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110237+00000000GDEM5650 21.024+0000000006012190 22.024+0000000009224440 31...0+0000000000107870 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110238+00000000GDEM5651 21.024+0000000006149450 22.024+0000000009228010 31...0+0000000000102194 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110239+00000000GDEM5652 21.024+0000000006355290 22.024+0000000009238330 31...0+0000000000095886 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110240+00000000GDEM5653 21.024+0000000006608110 22.024+0000000009254500 31...0+0000000000089899 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110241+00000000GDEM5654 21.024+0000000006838420 22.024+0000000009318060 31...0+0000000000084368 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110242+00000000GDEM5655 21.024+0000000007200570 22.024+0000000009321480 31...0+0000000000079361 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110243+00000000GDEM5656 21.024+0000000007602460 22.024+0000000009347450 31...0+0000000000074370 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110244+00000000GDEM5657 21.024+0000000008021520 22.024+0000000009415490 31...0+0000000000069857 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110245+00000000GDEM5658 21.024+0000000008517020 22.024+0000000009441230 31...0+0000000000065835 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110246+00000000GDEM5659 21.024+0000000009012500 22.024+0000000009455490 31...0+0000000000062834 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110247+00000000GDEM5660 21.024+0000000009449490 22.024+0000000009437560 31...0+0000000000059910 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110248+00000000GDEM5661 21.024+0000000010008170 22.024+0000000009436280 31...0+0000000000056836 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110249+00000000GDEM5662 21.024+0000000010625080 22.024+0000000009506190 31...0+0000000000054241 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110250+00000000GDEM5663 21.024+0000000011257350 22.024+0000000009524470 31...0+0000000000052386 51....+000000000017+000 87...0+0000000000002150 88...0+0000000000001324 *110251+00000000GDEM5664 21.024+0000000011707220 22.024+0000000009555530 31...0+0000000000057377 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110252+00000000GDEM5665 21.024+0000000011041540 22.024+0000000009520160 31...0+0000000000058651 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110253+00000000GDEM5666 21.024+0000000010458420 22.024+0000000009504490 31...0+0000000000060448 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110254+00000000GDEM5667 21.024+0000000009915400 22.024+0000000009455190 31...0+0000000000062682 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110255+00000000GDEM5668 21.024+0000000009336510 22.024+0000000009502560 31...0+0000000000065692 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110256+00000000GDEM5669 21.024+0000000008918120 22.024+0000000009451550 31...0+0000000000068900 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110257+00000000GDEM5670 21.024+0000000008632360 22.024+0000000009402510 31...0+0000000000071756 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110258+00000000GDEM5671 21.024+0000000008341540 22.024+0000000009347250 31...0+0000000000074610 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110259+00000000GDEM5672 21.024+0000000008020230 22.024+0000000009340200 31...0+0000000000078934 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110260+00000000GDEM5673 21.024+0000000007718310 22.024+0000000009317310 31...0+0000000000082988 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110261+00000000GDEM5674 21.024+0000000007428400 22.024+0000000009307110 31...0+0000000000087617 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110262+00000000GDEM5675 21.024+0000000007153130 22.024+0000000009251340 31...0+0000000000092154 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110263+00000000GDEM5676 21.024+0000000006931130 22.024+0000000009241280 31...0+0000000000096756 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110264+00000000GDEM5677 21.024+0000000006733150 22.024+0000000009234370 31...0+0000000000101101 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110265+00000000GDEM5678 21.024+0000000006558130 22.024+0000000009232310 31...0+0000000000104728 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110266+00000000GDEM5679 21.024+0000000006355340 22.024+0000000009215590 31...0+0000000000110370 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110267+00000000GDEM5680 21.024+0000000006207320 22.024+0000000009208460 31...0+0000000000115852 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110268+00000000GDEM5681 21.024+0000000006056200 22.024+0000000009204510 31...0+0000000000119503 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110269+00000000GDEM5682 21.024+0000000005934120 22.024+0000000009154570 31...0+0000000000125078 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110270+00000000GDEM5683 21.024+0000000005809400 22.024+0000000009147560 31...0+0000000000129959 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110271+00000000GDEM5684 21.024+0000000005705500 22.024+0000000009143300 31...0+0000000000136300 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110272+00000000GDEM5685 21.024+0000000005610000 22.024+0000000009137210 31...0+0000000000142182 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110273+00000000GDEM5686 21.024+0000000005518200 22.024+0000000009132250 31...0+0000000000147244 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110274+00000000GDEM5687 21.024+0000000005433490 22.024+0000000009145370 31...0+0000000000152979 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110275+00000000GDEM5688 21.024+0000000005339000 22.024+0000000009146580 31...0+0000000000158991 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110276+00000000GDEM5689 21.024+0000000005250280 22.024+0000000009135330 31...0+0000000000164888 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110277+00000000GDEM5690 21.024+0000000005524550 22.024+0000000009133500 31...0+0000000000163939 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110278+00000000GDEM5691 21.024+0000000005623360 22.024+0000000009140070 31...0+0000000000157560 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110279+00000000GDEM5692 21.024+0000000005653010 22.024+0000000009140010 31...0+0000000000154123 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110280+00000000GDEM5693 21.024+0000000005803180 22.024+0000000009142590 31...0+0000000000150339 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110281+00000000GDEM5694 21.024+0000000005906130 22.024+0000000009149160 31...0+0000000000145360 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110282+00000000GDEM5695 21.024+0000000006026100 22.024+0000000009155490 31...0+0000000000139838 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110283+00000000GDEM5696 21.024+0000000006137550 22.024+0000000009201260 31...0+0000000000134833 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110284+00000000GDEM5697 21.024+0000000006324480 22.024+0000000009204180 31...0+0000000000129249 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110285+00000000GDEM5698 21.024+0000000006448510 22.024+0000000009216430 31...0+0000000000125048 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110286+00000000GDEM5699 21.024+0000000006520050 22.024+0000000009214080 31...0+0000000000120293 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110287+00000000GDEM5700 21.024+0000000006610450 22.024+0000000009211050 31...0+0000000000115208 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110288+00000000GDEM5701 21.024+0000000006751280 22.024+0000000009230490 31...0+0000000000110266 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110289+00000000GDEM5702 21.024+0000000006953160 22.024+0000000009240200 31...0+0000000000104791 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110290+00000000GDEM5703 21.024+0000000007200360 22.024+0000000009238240 31...0+0000000000100270 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110291+00000000GDEM5704 21.024+0000000007550100 22.024+0000000009256280 31...0+0000000000094747 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110292+00000000GDEM5705 21.024+0000000007836280 22.024+0000000009317370 31...0+0000000000089439 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110293+00000000GDEM5706 21.024+0000000008045450 22.024+0000000009324050 31...0+0000000000085164 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110294+00000000GDEM5707 21.024+0000000008412340 22.024+0000000009342200 31...0+0000000000081270 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110295+00000000GDEM5708 21.024+0000000008830280 22.024+0000000009356330 31...0+0000000000077452 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110296+00000000GDEM5709 21.024+0000000009304000 22.024+0000000009412460 31...0+0000000000073078 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110297+00000000GDEM5710 21.024+0000000009800370 22.024+0000000009421460 31...0+0000000000069518 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110298+00000000GDEM5711 21.024+0000000010139370 22.024+0000000009435300 31...0+0000000000067452 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110299+00000000GDEM5712 21.024+0000000010637070 22.024+0000000009441520 31...0+0000000000065821 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110300+00000000GDEM5713 21.024+0000000011142300 22.024+0000000009438080 31...0+0000000000063808 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110301+00000000GDEM5714 21.024+0000000011520070 22.024+0000000009546220 31...0+0000000000062986 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110302+00000000GDEM5715 21.024+0000000011706590 22.024+0000000009517590 31...0+0000000000068081 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110303+00000000GDEM5716 21.024+0000000011226540 22.024+0000000009433320 31...0+0000000000069145 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110304+00000000GDEM5717 21.024+0000000010704480 22.024+0000000009440120 31...0+0000000000070554 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110305+00000000GDEM5718 21.024+0000000010147480 22.024+0000000009421460 31...0+0000000000073511 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110306+00000000GDEM5719 21.024+0000000009704240 22.024+0000000009405530 31...0+0000000000076379 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110307+00000000GDEM5720 21.024+0000000009403330 22.024+0000000009404330 31...0+0000000000078771 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110308+00000000GDEM5721 21.024+0000000009041180 22.024+0000000009350240 31...0+0000000000081774 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110309+00000000GDEM5722 21.024+0000000008658110 22.024+0000000009335300 31...0+0000000000085533 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110310+00000000GDEM5723 21.024+0000000008313550 22.024+0000000009321010 31...0+0000000000089293 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110311+00000000GDEM5724 21.024+0000000008020110 22.024+0000000009311480 31...0+0000000000092724 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110312+00000000GDEM5725 21.024+0000000007724430 22.024+0000000009259310 31...0+0000000000096557 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110313+00000000GDEM5726 21.024+0000000007534400 22.024+0000000009248330 31...0+0000000000099972 51....+000000000017+000 87...0+0000000000001300 88...0+0000000000001324 *110409+00000000GDEM5822 21.024+0000000027756290 22.024+0000000009009510 31...0+0000000000380667 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110410+00000000GDEM5823 21.024+0000000027653170 22.024+0000000009006540 31...0+0000000000379796 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110411+00000000GDEM5824 21.024+0000000027552490 22.024+0000000009004350 31...0+0000000000377833 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110412+00000000GDEM5825 21.024+0000000027451450 22.024+0000000009002330 31...0+0000000000376681 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110413+00000000GDEM5826 21.024+0000000027350420 22.024+0000000009002130 31...0+0000000000375410 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110414+00000000GDEM5827 21.024+0000000027248520 22.024+0000000009001350 31...0+0000000000375194 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110415+00000000GDEM5828 21.024+0000000027149200 22.024+0000000009001130 31...0+0000000000375871 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 *110416+00000000GDEM5829 21.024+0000000027056590 22.024+0000000009000430 31...0+0000000000375995 51....+000000000017+000 87...0+0000000000001500 88...0+0000000000001324 totalopenstation-0.5.3/sample_data/leica_gsi/leica_gsi8_ertola.gsi000066400000000000000000003615661477035261600254340ustar00rootroot00000000000000110001+00000001 21.322+03496940 22.322+09364360 31..00+00030485 51..1.+0000+000 87..10+00001500 81..00+00515836 82..00+00525871 83..00+00003079 71....+00000001 32..10+00030333 110002+00000002 21.322+02179330 22.322+09442590 31..00+00030596 51..1.+0000+000 87..10+00001500 81..00+00510231 82..00+00528710 83..00+00002716 71....+00000001 32..10+00030479 110003+00000003 21.322+01386450 22.322+09390160 31..00+00032850 51..1.+0000+000 87..10+00001500 81..00+00507065 82..00+00531927 83..00+00003182 71....+00000001 32..10+00032700 110004+00000004 21.322+00438870 22.322+09497400 31..00+00031858 51..1.+0000+000 87..10+00001500 81..00+00502188 82..00+00531683 83..00+00002553 71....+00000001 32..10+00031758 110005+00000005 21.322+39544000 22.322+09616900 31..00+00030738 51..1.+0000+000 87..10+00001500 81..00+00497804 82..00+00530604 83..00+00001889 71....+00000001 32..10+00030683 110006+00000006 21.322+36391690 22.322+09526600 31..00+00033861 51..1.+0000+000 87..10+00001800 81..00+00481869 82..00+00528487 83..00+00002256 71....+00000001 32..10+00033768 110007+00000007 21.322+35615990 22.322+09406160 31..00+00040522 51..1.+0000+000 87..10+00001500 81..00+00474361 82..00+00531151 83..00+00003815 71....+00000001 32..10+00040346 110008+00000008 21.322+34849160 22.322+09454670 31..00+00039742 51..1.+0000+000 87..10+00001500 81..00+00471346 82..00+00527327 83..00+00003440 71....+00000001 32..10+00039596 110009+00000009 21.322+34309220 22.322+09449740 31..00+00041051 51..1.+0000+000 87..10+00001500 81..00+00468119 82..00+00525617 83..00+00003584 71....+00000001 32..10+00040898 110010+00000010 21.322+33350500 22.322+09493760 31..00+00040770 51..1.+0000+000 87..10+00002150 81..00+00464859 82..00+00520415 83..00+00002629 71....+00000001 32..10+00040641 110011+00000011 21.322+32541310 22.322+09660590 31..00+00040522 51..1.+0000+000 87..10+00001350 81..00+00462717 82..00+00515727 83..00+00002349 71....+00000001 32..10+00040464 110012+00000012 21.322+31724390 22.322+09719820 31..00+00041547 51..1.+0000+000 87..10+00001480 81..00+00460007 82..00+00511106 83..00+00001888 71....+00000001 32..10+00041506 110013+00000013 21.322+31160930 22.322+09798310 31..00+00045062 51..1.+0000+000 87..10+00001500 81..00+00455707 82..00+00508168 83..00+00001468 71....+00000001 32..10+00045040 110014+00000014 21.322+30703600 22.322+09807870 31..00+00048653 51..1.+0000+000 87..10+00001500 81..00+00451666 82..00+00505364 83..00+00001508 71....+00000001 32..10+00048631 110015+00000015 21.322+30293830 22.322+09813200 31..00+00052038 51..1.+0000+000 87..10+00001500 81..00+00448039 82..00+00502400 83..00+00001567 71....+00000001 32..10+00052016 110016+00000016 21.322+29866850 22.322+09790610 31..00+00054781 51..1.+0000+000 87..10+00001500 81..00+00445260 82..00+00498855 83..00+00001842 71....+00000001 32..10+00054752 110017+00000017 21.322+29638590 22.322+09708330 31..00+00060246 51..1.+0000+000 87..10+00001500 81..00+00439914 82..00+00496585 83..00+00002799 71....+00000001 32..10+00060183 110018+00000018 21.322+29015170 22.322+09745760 31..00+00059016 51..1.+0000+000 87..10+00001500 81..00+00441735 82..00+00490914 83..00+00002396 71....+00000001 32..10+00058969 110019+00000019 21.322+28501740 22.322+09765890 31..00+00060109 51..1.+0000+000 87..10+00001500 81..00+00441587 82..00+00485993 83..00+00002250 71....+00000001 32..10+00060069 110020+00000020 21.322+28160260 22.322+09757860 31..00+00063258 51..1.+0000+000 87..10+00001500 81..00+00439409 82..00+00481986 83..00+00002446 71....+00000001 32..10+00063212 110021+00000021 21.322+27758200 22.322+09746660 31..00+00066816 51..1.+0000+000 87..10+00001800 81..00+00437334 82..00+00476973 83..00+00002398 71....+00000001 32..10+00066763 110022+00000022 21.322+27557570 22.322+09737640 31..00+00070852 51..1.+0000+000 87..10+00001800 81..00+00434354 82..00+00473502 83..00+00002659 71....+00000001 32..10+00070792 110023+00000023 21.322+27498070 22.322+09744050 31..00+00075713 51..1.+0000+000 87..10+00001300 81..00+00430116 82..00+00471028 83..00+00003284 71....+00000001 32..10+00075652 110024+00000024 21.322+27357080 22.322+09692520 31..00+00081201 51..1.+0000+000 87..10+00001300 81..00+00425783 82..00+00467288 83..00+00004161 71....+00000001 32..10+00081106 110025+00000025 21.322+27083790 22.322+09688240 31..00+00084040 51..1.+0000+000 87..10+00001450 81..00+00424714 82..00+00462880 83..00+00004204 71....+00000001 32..10+00083939 110026+00000026 21.322+27330920 22.322+09553460 31..00+00092443 51..1.+0000+000 87..10+00001950 81..00+00415771 82..00+00462461 83..00+00006069 71....+00000001 32..10+00092215 110027+00000027 21.322+27329070 22.322+09528530 31..00+00098507 51..1.+0000+000 87..10+00001600 81..00+00410283 82..00+00459983 83..00+00007229 71....+00000001 32..10+00098237 110028+00000028 21.322+27186610 22.322+09512520 31..00+00102971 51..1.+0000+000 87..10+00001700 81..00+00407194 82..00+00456090 83..00+00007718 71....+00000001 32..10+00102669 110029+00000029 21.322+26762700 22.322+09482910 31..00+00116020 51..1.+0000+000 87..10+00001650 81..00+00398994 82..00+00443698 83..00+00009304 71....+00000001 32..10+00115638 110030+00000030 21.322+26511550 22.322+09470350 31..00+00118445 51..1.+0000+000 87..10+00001650 81..00+00399246 82..00+00438509 83..00+00009734 71....+00000001 32..10+00118036 110031+00000031 21.322+26564830 22.322+09449610 31..00+00129206 51..1.+0000+000 87..10+00001650 81..00+00389566 82..00+00433864 83..00+00011048 71....+00000001 32..10+00128723 110032+00000032 21.322+26485940 22.322+09455640 31..00+00132819 51..1.+0000+000 87..10+00001650 81..00+00387320 82..00+00430607 83..00+00011235 71....+00000001 32..10+00132334 110033+00000033 21.322+26311670 22.322+09479060 31..00+00130513 51..1.+0000+000 87..10+00001300 81..00+00391151 82..00+00428785 83..00+00010909 71....+00000001 32..10+00130076 110034+00000034 21.322+26106560 22.322+09473530 31..00+00124253 51..1.+0000+000 87..10+00001700 81..00+00398617 82..00+00428903 83..00+00010105 71....+00000001 32..10+00123828 110035+00000035 21.322+26305620 22.322+09482180 31..00+00117597 51..1.+0000+000 87..10+00001300 81..00+00401980 82..00+00435736 83..00+00009796 71....+00000001 32..10+00117209 110036+00000036 21.322+26404130 22.322+09498070 31..00+00109502 51..1.+0000+000 87..10+00001300 81..00+00407794 82..00+00441568 83..00+00008865 71....+00000001 32..10+00109162 110037+00000037 21.322+26232650 22.322+09537400 31..00+00104009 51..1.+0000+000 87..10+00001300 81..00+00413905 82..00+00442133 83..00+00007792 71....+00000001 32..10+00103735 110038+00000038 21.322+26003250 22.322+09599850 31..00+00101927 51..1.+0000+000 87..10+00001300 81..00+00417671 82..00+00440249 83..00+00006643 71....+00000001 32..10+00101726 110039+00000039 21.322+25781440 22.322+09666060 31..00+00100819 51..1.+0000+000 87..10+00001300 81..00+00420627 82..00+00438061 83..00+00005527 71....+00000001 32..10+00100680 110040+00000040 21.322+25547980 22.322+09715120 31..00+00102542 51..1.+0000+000 87..10+00001300 81..00+00421606 82..00+00434060 83..00+00004828 71....+00000001 32..10+00102439 110041+00000041 21.322+25465850 22.322+09709420 31..00+00104794 51..1.+0000+000 87..10+00001300 81..00+00420763 82..00+00431586 83..00+00005022 71....+00000001 32..10+00104685 110042+00000042 21.322+25283660 22.322+09671570 31..00+00107433 51..1.+0000+000 87..10+00002000 81..00+00420831 82..00+00427589 83..00+00005081 71....+00000001 32..10+00107290 110043+00000043 21.322+25107360 22.322+09678230 31..00+00110695 51..1.+0000+000 87..10+00002000 81..00+00420519 82..00+00423156 83..00+00005133 71....+00000001 32..10+00110554 110044+00000044 21.322+25266440 22.322+09680810 31..00+00112557 51..1.+0000+000 87..10+00001360 81..00+00417254 82..00+00423906 83..00+00005822 71....+00000001 32..10+00112416 110045+00000045 21.322+25266020 22.322+09689490 31..00+00119170 51..1.+0000+000 87..10+00001300 81..00+00412392 82..00+00419424 83..00+00006051 71....+00000001 32..10+00119028 110046+00000046 21.322+25111450 22.322+09723800 31..00+00120142 51..1.+0000+000 87..10+00001300 81..00+00413654 82..00+00416625 83..00+00005452 71....+00000001 32..10+00120029 110047+00000047 21.322+24967740 22.322+09746540 31..00+00119674 51..1.+0000+000 87..10+00001300 81..00+00415874 82..00+00415017 83..00+00005004 71....+00000001 32..10+00119579 110048+00000048 21.322+24971040 22.322+09733670 31..00+00113354 51..1.+0000+000 87..10+00001300 81..00+00420282 82..00+00419554 83..00+00004982 71....+00000001 32..10+00113254 110049+00000049 21.322+24922110 22.322+09742220 31..00+00109688 51..1.+0000+000 87..10+00001300 81..00+00423457 82..00+00421560 83..00+00004681 71....+00000001 32..10+00109598 110050+00000050 21.322+24677710 22.322+09760020 31..00+00110513 51..1.+0000+000 87..10+00001300 81..00+00425963 82..00+00418060 83..00+00004406 71....+00000001 32..10+00110434 110051+00000051 21.322+24439660 22.322+09766250 31..00+00111806 51..1.+0000+000 87..10+00001300 81..00+00428246 82..00+00414356 83..00+00004345 71....+00000001 32..10+00111730 110052+00000052 21.322+24284740 22.322+09775980 31..00+00111640 51..1.+0000+000 87..10+00001300 81..00+00430450 82..00+00412760 83..00+00004169 71....+00000001 32..10+00111571 110053+00000053 21.322+24027050 22.322+09793440 31..00+00112222 51..1.+0000+000 87..10+00001300 81..00+00433688 82..00+00409540 83..00+00003881 71....+00000001 32..10+00112162 110054+00000054 21.322+23865220 22.322+09800170 31..00+00111337 51..1.+0000+000 87..10+00001300 81..00+00436511 82..00+00408607 83..00+00003735 71....+00000001 32..10+00111282 110055+00000055 21.322+23856810 22.322+09783780 31..00+00116442 51..1.+0000+000 87..10+00002100 81..00+00433731 82..00+00404336 83..00+00003395 71....+00000001 32..10+00116375 110056+00000056 21.322+23821530 22.322+09814050 31..00+00123166 51..1.+0000+000 87..10+00002150 81..00+00430456 82..00+00398410 83..00+00002988 71....+00000001 32..10+00123113 110057+00000057 21.322+23707710 22.322+09842710 31..00+00128679 51..1.+0000+000 87..10+00002150 81..00+00429244 82..00+00392568 83..00+00002570 71....+00000001 32..10+00128639 110058+00000058 21.322+23711000 22.322+09805030 31..00+00109818 51..1.+0000+000 87..10+00001300 81..00+00439577 82..00+00408360 83..00+00003604 71....+00000001 32..10+00109767 110059+00000059 21.322+23493450 22.322+09817490 31..00+00107285 51..1.+0000+000 87..10+00001300 81..00+00444061 82..00+00408504 83..00+00003316 71....+00000001 32..10+00107241 110060+00000060 21.322+23198680 22.322+09831360 31..00+00108693 51..1.+0000+000 87..10+00001300 81..00+00447675 82..00+00404774 83..00+00003120 71....+00000001 32..10+00108655 110061+00000061 21.322+22987450 22.322+09848530 31..00+00111091 51..1.+0000+000 87..10+00001300 81..00+00449775 82..00+00400946 83..00+00002884 71....+00000001 32..10+00111060 110062+00000062 21.322+22724040 22.322+09840510 31..00+00111446 51..1.+0000+000 87..10+00001300 81..00+00453770 82..00+00398634 83..00+00003032 71....+00000001 32..10+00111411 110063+00000063 21.322+22533020 22.322+09849740 31..00+00112932 51..1.+0000+000 87..10+00001710 81..00+00456254 82..00+00395919 83..00+00002496 71....+00000001 32..10+00112900 110064+00000064 21.322+22325960 22.322+09860980 31..00+00114875 51..1.+0000+000 87..10+00001710 81..00+00458967 82..00+00392733 83..00+00002339 71....+00000001 32..10+00114847 110065+00000065 21.322+22098360 22.322+09875060 31..00+00116025 51..1.+0000+000 87..10+00001710 81..00+00462453 82..00+00390242 83..00+00002108 71....+00000001 32..10+00116003 110066+00000066 21.322+21925640 22.322+09884010 31..00+00115314 51..1.+0000+000 87..10+00001710 81..00+00465655 82..00+00389939 83..00+00001932 71....+00000001 32..10+00115295 110067+00000067 21.322+21727730 22.322+09891900 31..00+00115928 51..1.+0000+000 87..10+00001710 81..00+00468927 82..00+00388332 83..00+00001799 71....+00000001 32..10+00115911 110068+00000068 21.322+21484930 22.322+09908410 31..00+00116438 51..1.+0000+000 87..10+00001710 81..00+00473089 82..00+00386727 83..00+00001506 71....+00000001 32..10+00116426 110069+00000069 21.322+21318460 22.322+09926470 31..00+00118636 51..1.+0000+000 87..10+00001710 81..00+00475607 82..00+00383907 83..00+00001201 71....+00000001 32..10+00118628 110070+00000070 21.322+21130120 22.322+09931020 31..00+00118866 51..1.+0000+000 87..10+00001710 81..00+00479011 82..00+00383009 83..00+00001119 71....+00000001 32..10+00118859 110071+00000071 21.322+21018170 22.322+09929510 31..00+00118075 51..1.+0000+000 87..10+00001710 81..00+00481197 82..00+00383439 83..00+00001138 71....+00000001 32..10+00118068 110072+00000072 21.322+20930390 22.322+09937400 31..00+00115217 51..1.+0000+000 87..10+00001500 81..00+00483222 82..00+00386017 83..00+00001174 71....+00000001 32..10+00115211 110073+00000073 21.322+20919440 22.322+09922820 31..00+00109306 51..1.+0000+000 87..10+00001500 81..00+00484269 82..00+00391840 83..00+00001366 71....+00000001 32..10+00109298 110074+00000074 21.322+20892570 22.322+09916000 31..00+00104646 51..1.+0000+000 87..10+00001500 81..00+00485377 82..00+00396390 83..00+00001422 71....+00000001 32..10+00104637 110075+00000075 21.322+20892050 22.322+09906050 31..00+00099495 51..1.+0000+000 87..10+00001500 81..00+00486105 82..00+00401491 83..00+00001509 71....+00000001 32..10+00099484 110076+00000076 21.322+20932150 22.322+09900550 31..00+00093938 51..1.+0000+000 87..10+00001500 81..00+00486296 82..00+00407079 83..00+00001508 71....+00000001 32..10+00093926 110077+00000077 21.322+20902720 22.322+09900510 31..00+00089877 51..1.+0000+000 87..10+00001500 81..00+00487300 82..00+00411035 83..00+00001445 71....+00000001 32..10+00089867 110078+00000078 21.322+20834120 22.322+09903190 31..00+00086234 51..1.+0000+000 87..10+00001500 81..00+00488735 82..00+00414515 83..00+00001352 71....+00000001 32..10+00086224 110079+00000079 21.322+20922740 22.322+09925130 31..00+00081002 51..1.+0000+000 87..10+00001500 81..00+00488301 82..00+00419853 83..00+00000993 71....+00000001 32..10+00080996 110080+00000080 21.322+20700720 22.322+09943820 31..00+00078389 51..1.+0000+000 87..10+00001500 81..00+00491390 82..00+00422088 83..00+00000732 71....+00000001 32..10+00078386 110081+00000081 21.322+20418190 22.322+09924340 31..00+00080392 51..1.+0000+000 87..10+00001500 81..00+00494723 82..00+00419787 83..00+00000996 71....+00000001 32..10+00080387 110082+00000082 21.322+20164200 22.322+09900420 31..00+00082193 51..1.+0000+000 87..10+00001500 81..00+00497881 82..00+00417844 83..00+00001326 71....+00000001 32..10+00082183 110083+00000083 21.322+19847200 22.322+09915740 31..00+00080046 51..1.+0000+000 87..10+00001500 81..00+00501921 82..00+00419984 83..00+00001100 71....+00000001 32..10+00080039 110084+00000084 21.322+19904100 22.322+09969390 31..00+00075165 51..1.+0000+000 87..10+00001500 81..00+00501132 82..00+00424844 83..00+00000402 71....+00000001 32..10+00075165 110085+00000085 21.322+19800180 22.322+10046370 31..00+00070700 51..1.+0000+000 87..10+00001500 81..00+00502219 82..00+00429337 83..00-00000475 71....+00000001 32..10+00070698 110086+00000086 21.322+19803360 22.322+10089720 31..00+00065750 51..1.+0000+000 87..10+00001500 81..00+00502030 82..00+00434288 83..00-00000886 71....+00000001 32..10+00065743 110087+00000087 21.322+19686440 22.322+10101830 31..00+00061590 51..1.+0000+000 87..10+00001500 81..00+00503032 82..00+00438493 83..00-00000945 71....+00000001 32..10+00061582 110088+00000088 21.322+19484440 22.322+10111180 31..00+00057328 51..1.+0000+000 87..10+00001500 81..00+00504637 82..00+00442868 83..00-00000961 71....+00000001 32..10+00057319 110089+00000089 21.322+19118540 22.322+10130890 31..00+00054886 51..1.+0000+000 87..10+00001500 81..00+00507574 82..00+00445651 83..00-00001088 71....+00000001 32..10+00054874 110090+00000090 21.322+18643650 22.322+10135840 31..00+00054485 51..1.+0000+000 87..10+00001500 81..00+00511518 82..00+00446759 83..00-00001122 71....+00000001 32..10+00054473 110091+00000091 21.322+18156720 22.322+10134850 31..00+00052416 51..1.+0000+000 87..10+00001500 81..00+00514962 82..00+00449777 83..00-00001070 71....+00000001 32..10+00052404 110092+00000092 21.322+17570050 22.322+10085810 31..00+00052895 51..1.+0000+000 87..10+00001500 81..00+00519701 82..00+00450916 83..00-00000673 71....+00000001 32..10+00052890 110093+00000093 21.322+17907710 22.322+10053160 31..00+00058916 51..1.+0000+000 87..10+00001300 81..00+00519016 82..00+00444239 83..00-00000252 71....+00000001 32..10+00058914 110094+00000094 21.322+18118450 22.322+10058760 31..00+00065457 51..1.+0000+000 87..10+00001600 81..00+00519065 82..00+00437384 83..00-00000664 71....+00000001 32..10+00065455 110095+00000095 21.322+17895210 22.322+10086590 31..00+00072087 51..1.+0000+000 87..10+00001600 81..00+00523399 82..00+00431824 83..00-00001040 71....+00000001 32..10+00072080 110096+00000096 21.322+17579460 22.322+10051770 31..00+00075815 51..1.+0000+000 87..10+00002150 81..00+00528136 82..00+00429602 83..00-00001226 71....+00000001 32..10+00075813 110097+00000097 21.322+17261550 22.322+09996760 31..00+00076518 51..1.+0000+000 87..10+00002150 81..00+00531909 82..00+00430453 83..00-00000571 71....+00000001 32..10+00076518 110098+00000098 21.322+17032760 22.322+09965830 31..00+00074290 51..1.+0000+000 87..10+00001800 81..00+00533386 82..00+00433635 83..00+00000139 71....+00000001 32..10+00074289 110099+00000099 21.322+16666680 22.322+09916950 31..00+00071014 51..1.+0000+000 87..10+00001800 81..00+00535504 82..00+00438505 83..00+00000667 71....+00000001 32..10+00071008 110100+00000100 21.322+16241580 22.322+09886910 31..00+00069434 51..1.+0000+000 87..10+00001800 81..00+00538646 82..00+00442328 83..00+00000974 71....+00000001 32..10+00069423 110101+00000101 21.322+15869780 22.322+09833350 31..00+00067026 51..1.+0000+000 87..10+00001800 81..00+00540484 82..00+00446611 83..00+00001495 71....+00000001 32..10+00067003 110102+00000102 21.322+15843100 22.322+09863310 31..00+00057270 51..1.+0000+000 87..10+00001300 81..00+00534786 82..00+00454522 83..00+00001470 71....+00000001 32..10+00057257 110103+00000103 21.322+15805140 22.322+09838420 31..00+00050474 51..1.+0000+000 87..10+00001800 81..00+00530894 82..00+00460106 83..00+00001021 71....+00000001 32..10+00050458 110104+00000104 21.322+15842430 22.322+09919180 31..00+00045533 51..1.+0000+000 87..10+00001800 81..00+00527665 82..00+00463839 83..00+00000318 71....+00000001 32..10+00045530 110105+00000105 21.322+15776110 22.322+09972340 31..00+00041498 51..1.+0000+000 87..10+00001800 81..00+00525557 82..00+00467306 83..00-00000080 71....+00000001 32..10+00041498 110106+00000106 21.322+15462150 22.322+09966800 31..00+00037136 51..1.+0000+000 87..10+00001800 81..00+00524285 82..00+00471906 83..00-00000066 71....+00000001 32..10+00037136 110107+00000107 21.322+15235420 22.322+09949240 31..00+00032705 51..1.+0000+000 87..10+00001800 81..00+00522255 82..00+00476035 83..00+00000001 71....+00000001 32..10+00032704 110108+00000108 21.322+14863460 22.322+09992820 31..00+00028418 51..1.+0000+000 87..10+00001800 81..00+00520521 82..00+00480341 83..00-00000228 71....+00000001 32..10+00028418 110109+00000109 21.322+14426120 22.322+09986540 31..00+00024089 51..1.+0000+000 87..10+00001800 81..00+00518497 82..00+00484569 83..00-00000209 71....+00000001 32..10+00024089 110110+00000110 21.322+13585250 22.322+09938800 31..00+00020284 51..1.+0000+000 87..10+00001800 81..00+00517151 82..00+00489171 83..00-00000065 71....+00000001 32..10+00020283 110111+00000111 21.322+12465610 22.322+09901070 31..00+00016152 51..1.+0000+000 87..10+00001800 81..00+00514954 82..00+00493900 83..00-00000009 71....+00000001 32..10+00016150 110112+00000112 21.322+10964870 22.322+09760890 31..00+00013729 51..1.+0000+000 87..10+00001800 81..00+00513562 82..00+00497929 83..00+00000256 71....+00000001 32..10+00013720 110113+00000113 21.322+08777430 22.322+09619770 31..00+00011964 51..1.+0000+000 87..10+00001800 81..00+00511723 82..00+00502279 83..00+00000454 71....+00000001 32..10+00011942 110114+00000114 21.322+06734110 22.322+09454150 31..00+00013836 51..1.+0000+000 87..10+00001800 81..00+00512010 82..00+00506766 83..00+00000925 71....+00000001 32..10+00013785 110115+00000115 21.322+05892570 22.322+09371220 31..00+00017254 51..1.+0000+000 87..10+00001800 81..00+00513719 82..00+00510325 83..00+00001441 71....+00000001 32..10+00017170 110116+00000116 21.322+05668590 22.322+09235970 31..00+00021048 51..1.+0000+000 87..10+00001800 81..00+00516244 82..00+00513146 83..00+00002260 71....+00000001 32..10+00020897 110117+00000117 21.322+05751660 22.322+09124330 31..00+00025788 51..1.+0000+000 87..10+00001800 81..00+00520065 82..00+00515809 83..00+00003276 71....+00000001 32..10+00025545 110118+00000118 21.322+05429370 22.322+09186040 31..00+00030303 51..1.+0000+000 87..10+00001800 81..00+00522637 82..00+00519772 83..00+00003604 71....+00000001 32..10+00030056 110119+00000119 21.322+04605860 22.322+09221790 31..00+00032707 51..1.+0000+000 87..10+00001800 81..00+00521491 82..00+00524331 83..00+00003728 71....+00000001 32..10+00032463 110120+00000120 21.322+03798260 22.322+09246930 31..00+00033408 51..1.+0000+000 87..10+00001800 81..00+00518639 82..00+00527443 83..00+00003683 71....+00000001 32..10+00033174 110121+00000121 21.322+02513190 22.322+09344850 31..00+00030160 51..1.+0000+000 87..10+00001800 81..00+00511538 82..00+00527693 83..00+00002838 71....+00000001 32..10+00030001 110122+00000122 21.322+16755920 22.322+10070270 31..00+00047844 51..1.+0000+000 87..10+00001300 81..00+00523337 82..00+00458237 83..00-00000288 71....+00000099 32..10+00047841 110123+00000123 21.322+16905020 22.322+10084450 31..00+00047423 51..1.+0000+000 87..10+00001300 81..00+00522155 82..00+00458076 83..00-00000389 71....+00000099 32..10+00047418 110124+00000124 21.322+17062010 22.322+10101570 31..00+00047007 51..1.+0000+000 87..10+00001300 81..00+00520929 82..00+00457916 83..00-00000510 71....+00000099 32..10+00047001 110125+00000125 21.322+17220340 22.322+10122390 31..00+00046649 51..1.+0000+000 87..10+00001300 81..00+00519723 82..00+00457736 83..00-00000657 71....+00000099 32..10+00046640 110126+00000126 21.322+17434070 22.322+10152630 31..00+00046206 51..1.+0000+000 87..10+00001300 81..00+00518118 82..00+00457508 83..00-00000868 71....+00000099 32..10+00046193 110127+00000127 21.322+17633340 22.322+10114690 31..00+00045863 51..1.+0000+000 87..10+00001850 81..00+00516657 82..00+00457276 83..00-00001136 71....+00000099 32..10+00045856 110128+00000128 21.322+17799420 22.322+10117520 31..00+00045605 51..1.+0000+000 87..10+00001850 81..00+00515450 82..00+00457099 83..00-00001152 71....+00000099 32..10+00045598 110129+00000129 21.322+17927050 22.322+10116040 31..00+00045412 51..1.+0000+000 87..10+00001850 81..00+00514525 82..00+00456981 83..00-00001138 71....+00000099 32..10+00045405 110130+00000130 21.322+18105120 22.322+10129470 31..00+00045239 51..1.+0000+000 87..10+00001850 81..00+00513264 82..00+00456759 83..00-00001230 71....+00000099 32..10+00045229 110131+00000131 21.322+18263220 22.322+10106340 31..00+00045084 51..1.+0000+000 87..10+00001850 81..00+00512146 82..00+00456589 83..00-00001063 71....+00000099 32..10+00045078 110132+00000132 21.322+18415800 22.322+10075390 31..00+00000000 51..1.+0000+000 87..10+00001850 81..00+00000000 82..00+00000000 83..00+00000000 71....+00000099 32..10+00000000 110133+00000133 21.322+18416020 22.322+10075160 31..00+00044938 51..1.+0000+000 87..10+00001850 81..00+00511065 82..00+00456448 83..00-00000840 71....+00000099 32..10+00044935 110134+00000134 21.322+18564400 22.322+10067800 31..00+00044813 51..1.+0000+000 87..10+00001850 81..00+00510020 82..00+00456324 83..00-00000787 71....+00000099 32..10+00044810 110135+00000135 21.322+18638890 22.322+10064450 31..00+00044786 51..1.+0000+000 87..10+00001850 81..00+00509502 82..00+00456236 83..00-00000763 71....+00000099 32..10+00044783 110136+00000136 21.322+18652500 22.322+10059230 31..00+00045999 51..1.+0000+000 87..10+00001850 81..00+00509664 82..00+00455029 83..00-00000738 71....+00000099 32..10+00045998 110137+00000137 21.322+18663950 22.322+10056380 31..00+00047144 51..1.+0000+000 87..10+00001850 81..00+00509821 82..00+00453892 83..00-00000727 71....+00000099 32..10+00047142 110138+00000138 21.322+18673320 22.322+10056940 31..00+00048313 51..1.+0000+000 87..10+00001850 81..00+00509995 82..00+00452734 83..00-00000742 71....+00000099 32..10+00048312 110139+00000139 21.322+18675450 22.322+10053570 31..00+00049105 51..1.+0000+000 87..10+00001850 81..00+00510143 82..00+00451956 83..00-00000723 71....+00000099 32..10+00049103 110140+00000140 21.322+18683360 22.322+10053210 31..00+00049821 51..1.+0000+000 87..10+00001850 81..00+00510230 82..00+00451243 83..00-00000726 71....+00000099 32..10+00049819 110141+00000141 21.322+18552370 22.322+10056600 31..00+00049889 51..1.+0000+000 87..10+00001850 81..00+00511246 82..00+00451397 83..00-00000753 71....+00000099 32..10+00049887 110142+00000142 21.322+18401400 22.322+10059390 31..00+00050013 51..1.+0000+000 87..10+00001850 81..00+00512427 82..00+00451558 83..00-00000776 71....+00000099 32..10+00050011 110143+00000143 21.322+18259720 22.322+10106760 31..00+00050178 51..1.+0000+000 87..10+00001550 81..00+00513545 82..00+00451691 83..00-00000851 71....+00000099 32..10+00050171 110144+00000144 21.322+18142240 22.322+10118140 31..00+00050157 51..1.+0000+000 87..10+00001550 81..00+00514427 82..00+00451971 83..00-00000941 71....+00000099 32..10+00050149 110145+00000145 21.322+18045420 22.322+10131320 31..00+00050353 51..1.+0000+000 87..10+00001550 81..00+00515215 82..00+00452012 83..00-00001048 71....+00000099 32..10+00050342 110146+00000146 21.322+18016560 22.322+10113660 31..00+00049513 51..1.+0000+000 87..10+00001550 81..00+00515175 82..00+00452878 83..00-00000894 71....+00000099 32..10+00049505 110147+00000147 21.322+18006310 22.322+10106410 31..00+00048641 51..1.+0000+000 87..10+00001550 81..00+00514983 82..00+00453731 83..00-00000823 71....+00000099 32..10+00048634 110148+00000148 21.322+17981530 22.322+10111510 31..00+00047895 51..1.+0000+000 87..10+00001550 81..00+00514930 82..00+00454499 83..00-00000849 71....+00000099 32..10+00047888 110149+00000149 21.322+17975570 22.322+10125380 31..00+00047358 51..1.+0000+000 87..10+00001550 81..00+00514804 82..00+00455025 83..00-00000942 71....+00000099 32..10+00047348 110150+00000150 21.322+17872230 22.322+10206500 31..00+00047493 51..1.+0000+000 87..10+00001550 81..00+00515571 82..00+00455159 83..00-00001550 71....+00000099 32..10+00047468 110151+00000151 21.322+17788170 22.322+10231620 31..00+00047578 51..1.+0000+000 87..10+00001550 81..00+00516189 82..00+00455294 83..00-00001740 71....+00000099 32..10+00047547 110152+00000152 21.322+17698090 22.322+10191110 31..00+00047709 51..1.+0000+000 87..10+00001550 81..00+00516870 82..00+00455397 83..00-00001442 71....+00000099 32..10+00047687 110153+00000153 21.322+17579590 22.322+10145530 31..00+00047865 51..1.+0000+000 87..10+00001550 81..00+00517758 82..00+00455565 83..00-00001104 71....+00000099 32..10+00047852 110154+00000154 21.322+17457010 22.322+10114730 31..00+00048071 51..1.+0000+000 87..10+00001550 81..00+00518692 82..00+00455721 83..00-00000876 71....+00000099 32..10+00048063 110155+00000155 21.322+17326380 22.322+10093310 31..00+00048333 51..1.+0000+000 87..10+00001550 81..00+00519705 82..00+00455872 83..00-00000718 71....+00000099 32..10+00048328 110156+00000156 21.322+17210530 22.322+10071950 31..00+00048561 51..1.+0000+000 87..10+00001550 81..00+00520602 82..00+00456029 83..00-00000559 71....+00000099 32..10+00048558 110157+00000157 21.322+17097820 22.322+10056120 31..00+00048852 51..1.+0000+000 87..10+00001550 81..00+00521506 82..00+00456139 83..00-00000440 71....+00000099 32..10+00048850 110158+00000158 21.322+16925380 22.322+10032190 31..00+00049335 51..1.+0000+000 87..10+00001550 81..00+00522911 82..00+00456308 83..00-00000259 71....+00000099 32..10+00049335 110159+00000159 21.322+16830930 22.322+10025670 31..00+00049515 51..1.+0000+000 87..10+00001550 81..00+00523643 82..00+00456495 83..00-00000209 71....+00000099 32..10+00049515 110160+00000160 21.322+16787860 22.322+10030090 31..00+00048619 51..1.+0000+000 87..10+00001550 81..00+00523503 82..00+00457440 83..00-00000240 71....+00000099 32..10+00048619 110161+00000161 21.322+16641770 22.322+09997350 31..00+00048856 51..1.+0000+000 87..10+00001550 81..00+00524593 82..00+00457785 83..00+00000010 71....+00000098 32..10+00048856 110162+00000162 21.322+17076440 22.322+10072800 31..00+00049494 51..1.+0000+000 87..10+00001300 81..00+00521937 82..00+00455637 83..00-00000326 71....+00000098 32..10+00049491 110163+00000163 21.322+19356910 22.322+10103760 31..00+00049956 51..1.+0000+000 87..10+00001300 81..00+00505037 82..00+00450306 83..00-00000574 71....+00000098 32..10+00049949 110164+00000164 21.322+15561340 22.322+10037400 31..00+00036708 51..1.+0000+000 87..10+00001300 81..00+00523569 82..00+00471859 83..00+00000024 71....+00000098 32..10+00036707 110165+00000165 21.322+17639460 22.322+10058670 31..00+00043380 51..1.+0000+000 87..10+00001210 81..00+00515718 82..00+00459570 83..00-00000070 71....+00000040 32..10+00043378 110166+00000166 21.322+18097660 22.322+10035640 31..00+00041797 51..1.+0000+000 87..10+00001210 81..00+00512304 82..00+00460056 83..00+00000096 71....+00000040 32..10+00041796 110167+00000167 21.322+18556110 22.322+10035050 31..00+00039118 51..1.+0000+000 87..10+00001210 81..00+00508796 82..00+00461884 83..00+00000115 71....+00000040 32..10+00039117 110168+00000168 21.322+18888020 22.322+10020510 31..00+00035423 51..1.+0000+000 87..10+00001210 81..00+00506156 82..00+00465116 83..00+00000216 71....+00000040 32..10+00035423 110169+00000169 21.322+19360740 22.322+10017060 31..00+00033382 51..1.+0000+000 87..10+00001210 81..00+00503346 82..00+00466786 83..00+00000241 71....+00000040 32..10+00033382 110170+00000170 21.322+20027800 22.322+10006110 31..00+00032963 51..1.+0000+000 87..10+00001210 81..00+00499856 82..00+00467037 83..00+00000298 71....+00000040 32..10+00032963 110171+00000171 21.322+17585970 22.322+10048180 31..00+00044259 51..1.+0000+000 87..10+00002100 81..00+00516383 82..00+00458886 83..00-00000895 71....+00000044 32..10+00044258 110172+00000172 21.322+17904620 22.322+10043940 31..00+00042348 51..1.+0000+000 87..10+00002100 81..00+00513688 82..00+00459926 83..00-00000852 71....+00000044 32..10+00042347 110173+00000173 21.322+18232590 22.322+10050120 31..00+00041497 51..1.+0000+000 87..10+00002100 81..00+00511373 82..00+00460093 83..00-00000887 71....+00000044 32..10+00041496 110174+00000174 21.322+18525660 22.322+10030960 31..00+00039515 51..1.+0000+000 87..10+00002100 81..00+00509069 82..00+00461541 83..00-00000752 71....+00000044 32..10+00039514 110175+00000175 21.322+18691620 22.322+10019600 31..00+00037322 51..1.+0000+000 87..10+00002100 81..00+00507617 82..00+00463464 83..00-00000675 71....+00000044 32..10+00037322 110176+00000176 21.322+18924210 22.322+10017690 31..00+00035174 51..1.+0000+000 87..10+00002100 81..00+00505916 82..00+00465327 83..00-00000658 71....+00000044 32..10+00035174 110177+00000177 21.322+19355780 22.322+10018670 31..00+00033435 51..1.+0000+000 87..10+00002100 81..00+00503378 82..00+00466736 83..00-00000658 71....+00000044 32..10+00033435 110178+00000178 21.322+19979610 22.322+10004830 31..00+00032982 51..1.+0000+000 87..10+00002100 81..00+00500106 82..00+00467019 83..00-00000585 71....+00000044 32..10+00032982 110179+00000179 21.322+20472900 22.322+09988540 31..00+00030603 51..1.+0000+000 87..10+00002100 81..00+00497729 82..00+00469482 83..00-00000505 71....+00000044 32..10+00030603 110180+00000180 21.322+21037380 22.322+09975270 31..00+00028576 51..1.+0000+000 87..10+00002100 81..00+00495364 82..00+00471803 83..00-00000449 71....+00000044 32..10+00028575 110181+00000181 21.322+21514960 22.322+09953690 31..00+00026034 51..1.+0000+000 87..10+00002100 81..00+00493863 82..00+00474700 83..00-00000371 71....+00000044 32..10+00026033 110182+00000182 21.322+22665520 22.322+09934390 31..00+00023772 51..1.+0000+000 87..10+00002100 81..00+00490336 82..00+00478283 83..00-00000315 71....+00000044 32..10+00023771 110183+00000183 21.322+23148740 22.322+09916650 31..00+00020447 51..1.+0000+000 87..10+00002100 81..00+00490295 82..00+00482005 83..00-00000292 71....+00000044 32..10+00020446 110184+00000184 21.322+23635570 22.322+09883040 31..00+00017039 51..1.+0000+000 87..10+00002100 81..00+00490791 82..00+00485667 83..00-00000247 71....+00000044 32..10+00017036 110185+00000185 21.322+24731010 22.322+09848950 31..00+00014245 51..1.+0000+000 87..10+00002100 81..00+00490364 82..00+00489514 83..00-00000222 71....+00000044 32..10+00014241 110186+00000186 21.322+26696700 22.322+09823080 31..00+00013906 51..1.+0000+000 87..10+00002100 81..00+00487929 82..00+00493107 83..00-00000174 71....+00000044 32..10+00013900 110187+00000187 21.322+28556120 22.322+09856670 31..00+00015964 51..1.+0000+000 87..10+00002100 81..00+00484449 82..00+00496411 83..00-00000201 71....+00000044 32..10+00015960 110188+00000188 21.322+30154110 22.322+09827980 31..00+00016582 51..1.+0000+000 87..10+00002100 81..00+00483429 82..00+00500401 83..00-00000112 71....+00000044 32..10+00016576 110189+00000189 21.322+31732130 22.322+09780200 31..00+00017210 51..1.+0000+000 87..10+00002100 81..00+00483433 82..00+00504622 83..00+00000034 71....+00000044 32..10+00017200 110190+00000190 21.322+32515540 22.322+09755790 31..00+00020235 51..1.+0000+000 87..10+00002100 81..00+00481338 82..00+00507783 83..00+00000216 71....+00000044 32..10+00020220 110191+00000191 21.322+31950730 22.322+09761370 31..00+00023257 51..1.+0000+000 87..10+00002100 81..00+00477842 82..00+00507010 83..00+00000312 71....+00000044 32..10+00023240 110192+00000192 21.322+31325260 22.322+09786670 31..00+00024581 51..1.+0000+000 87..10+00002100 81..00+00475964 82..00+00505077 83..00+00000264 71....+00000044 32..10+00024567 110193+00000193 21.322+30989920 22.322+09755690 31..00+00028625 51..1.+0000+000 87..10+00002100 81..00+00471742 82..00+00504430 83..00+00000538 71....+00000044 32..10+00028603 110194+00000194 21.322+30484590 22.322+09751600 31..00+00030683 51..1.+0000+000 87..10+00002100 81..00+00469429 82..00+00502332 83..00+00000637 71....+00000044 32..10+00030660 110195+00000195 21.322+30413790 22.322+09763800 31..00+00033961 51..1.+0000+000 87..10+00002100 81..00+00466134 82..00+00502204 83..00+00000700 71....+00000044 32..10+00033938 110196+00000196 21.322+29866880 22.322+09791560 31..00+00033649 51..1.+0000+000 87..10+00002100 81..00+00466377 82..00+00499297 83..00+00000542 71....+00000044 32..10+00033631 110197+00000197 21.322+29322660 22.322+09825020 31..00+00033774 51..1.+0000+000 87..10+00002100 81..00+00466430 82..00+00496415 83..00+00000368 71....+00000044 32..10+00033761 110198+00000198 21.322+28559700 22.322+09864720 31..00+00030411 51..1.+0000+000 87..10+00002100 81..00+00470371 82..00+00493180 83..00+00000086 71....+00000044 32..10+00030404 110199+00000199 21.322+27974410 22.322+09897050 31..00+00027530 51..1.+0000+000 87..10+00002100 81..00+00473855 82..00+00491389 83..00-00000115 71....+00000044 32..10+00027527 110200+00000200 21.322+27442200 22.322+09888120 31..00+00029506 51..1.+0000+000 87..10+00002100 81..00+00472848 82..00+00488463 83..00-00000041 71....+00000044 32..10+00029502 110201+00000201 21.322+27801780 22.322+09845100 31..00+00033509 51..1.+0000+000 87..10+00002100 81..00+00468479 82..00+00488662 83..00+00000255 71....+00000044 32..10+00033499 110202+00000202 21.322+28434550 22.322+09827470 31..00+00035252 51..1.+0000+000 87..10+00002100 81..00+00465821 82..00+00491422 83..00+00000395 71....+00000044 32..10+00035239 110203+00000203 21.322+28209080 22.322+09835130 31..00+00039576 51..1.+0000+000 87..10+00002100 81..00+00461993 82..00+00489017 83..00+00000465 71....+00000044 32..10+00039563 110204+00000204 21.322+28402490 22.322+09806620 31..00+00043654 51..1.+0000+000 87..10+00002100 81..00+00457732 82..00+00489165 83..00+00000766 71....+00000044 32..10+00043634 110205+00000205 21.322+27943200 22.322+09782810 31..00+00047194 51..1.+0000+000 87..10+00002100 81..00+00455274 82..00+00485025 83..00+00001050 71....+00000044 32..10+00047167 110206+00000206 21.322+27515960 22.322+09778740 31..00+00050851 51..1.+0000+000 87..10+00002100 81..00+00453000 82..00+00480670 83..00+00001207 71....+00000044 32..10+00050820 110207+00000207 21.322+27129170 22.322+09799900 31..00+00049656 51..1.+0000+000 87..10+00002100 81..00+00455330 82..00+00478369 83..00+00001001 71....+00000044 32..10+00049632 110208+00000208 21.322+26857330 22.322+09771870 31..00+00052333 51..1.+0000+000 87..10+00002100 81..00+00453944 82..00+00475218 83..00+00001315 71....+00000044 32..10+00052300 110209+00000209 21.322+26672300 22.322+09770760 31..00+00056408 51..1.+0000+000 87..10+00002100 81..00+00451156 82..00+00471857 83..00+00001471 71....+00000044 32..10+00056372 110210+00000210 21.322+26226950 22.322+09798290 31..00+00055394 51..1.+0000+000 87..10+00002100 81..00+00454077 82..00+00469074 83..00+00001195 71....+00000044 32..10+00055366 110211+00000211 21.322+25940640 22.322+09797940 31..00+00057719 51..1.+0000+000 87..10+00002100 81..00+00453646 82..00+00465657 83..00+00001272 71....+00000044 32..10+00057690 110212+00000212 21.322+25641250 22.322+09810640 31..00+00055523 51..1.+0000+000 87..10+00002100 81..00+00457009 82..00+00464902 83..00+00001091 71....+00000044 32..10+00055499 110213+00000213 21.322+25582330 22.322+09791970 31..00+00059041 51..1.+0000+000 87..10+00002100 81..00+00454637 82..00+00462260 83..00+00001369 71....+00000044 32..10+00059009 110214+00000214 21.322+25166660 22.322+09800310 31..00+00058528 51..1.+0000+000 87..10+00002100 81..00+00457566 82..00+00459732 83..00+00001276 71....+00000044 32..10+00058499 110215+00000215 21.322+25420960 22.322+09821250 31..00+00054153 51..1.+0000+000 87..10+00002100 81..00+00459277 82..00+00464336 83..00+00000961 71....+00000044 32..10+00054132 110216+00000216 21.322+25796180 22.322+09813500 31..00+00051156 51..1.+0000+000 87..10+00002100 81..00+00459615 82..00+00468636 83..00+00000939 71....+00000044 32..10+00051134 110217+00000217 21.322+25980310 22.322+09830250 31..00+00047244 51..1.+0000+000 87..10+00002100 81..00+00461878 82..00+00472122 83..00+00000700 71....+00000044 32..10+00047228 110218+00000218 21.322+25816790 22.322+09862520 31..00+00044492 51..1.+0000+000 87..10+00002100 81..00+00464781 82..00+00472830 83..00+00000401 71....+00000044 32..10+00044481 110219+00000219 21.322+25403470 22.322+09853800 31..00+00045072 51..1.+0000+000 87..10+00002100 81..00+00466183 82..00+00470219 83..00+00000475 71....+00000044 32..10+00045061 110220+00000220 21.322+25266700 22.322+09857880 31..00+00047223 51..1.+0000+000 87..10+00002100 81..00+00465248 82..00+00468044 83..00+00000494 71....+00000044 32..10+00047211 110221+00000221 21.322+25198090 22.322+09859350 31..00+00043930 51..1.+0000+000 87..10+00002100 81..00+00467993 82..00+00469925 83..00+00000411 71....+00000044 32..10+00043920 110222+00000222 21.322+24772930 22.322+09867870 31..00+00042797 51..1.+0000+000 87..10+00002100 81..00+00470842 82..00+00468685 83..00+00000328 71....+00000044 32..10+00042788 110223+00000223 21.322+24431380 22.322+09872340 31..00+00044540 51..1.+0000+000 87..10+00002100 81..00+00471446 82..00+00465829 83..00+00000333 71....+00000044 32..10+00044531 110224+00000224 21.322+24093070 22.322+09901970 31..00+00041255 51..1.+0000+000 87..10+00002100 81..00+00475268 82..00+00466986 83..00+00000075 71....+00000044 32..10+00041250 110225+00000225 21.322+23914860 22.322+09885450 31..00+00044509 51..1.+0000+000 87..10+00002100 81..00+00474326 82..00+00463651 83..00+00000241 71....+00000044 32..10+00044502 110226+00000226 21.322+23080920 22.322+09911210 31..00+00042020 51..1.+0000+000 87..10+00002100 81..00+00480451 82..00+00462809 83..00+00000026 71....+00000044 32..10+00042016 110227+00000227 21.322+22786100 22.322+09923310 31..00+00039475 51..1.+0000+000 87..10+00002100 81..00+00483272 82..00+00464248 83..00-00000084 71....+00000044 32..10+00039472 110228+00000228 21.322+23235340 22.322+09925420 31..00+00036872 51..1.+0000+000 87..10+00002100 81..00+00482059 82..00+00467790 83..00-00000128 71....+00000044 32..10+00036870 110229+00000229 21.322+23289470 22.322+09937630 31..00+00033461 51..1.+0000+000 87..10+00002100 81..00+00483471 82..00+00470909 83..00-00000232 71....+00000044 32..10+00033459 110230+00000230 21.322+22712990 22.322+09960370 31..00+00030781 51..1.+0000+000 87..10+00002100 81..00+00487276 82..00+00471972 83..00-00000368 71....+00000044 32..10+00030781 110231+00000231 21.322+22205560 22.322+09952850 31..00+00030664 51..1.+0000+000 87..10+00002100 81..00+00489588 82..00+00471158 83..00-00000333 71....+00000044 32..10+00030664 110232+00000232 21.322+21771860 22.322+09962270 31..00+00030963 51..1.+0000+000 87..10+00002100 81..00+00491493 82..00+00470229 83..00-00000376 71....+00000044 32..10+00030962 110233+00000233 21.322+21372300 22.322+09978370 31..00+00031440 51..1.+0000+000 87..10+00002100 81..00+00493275 82..00+00469288 83..00-00000453 71....+00000044 32..10+00031440 110234+00000234 21.322+21076880 22.322+09986010 31..00+00032695 51..1.+0000+000 87..10+00002100 81..00+00494496 82..00+00467772 83..00-00000488 71....+00000044 32..10+00032695 110235+00000235 21.322+20778470 22.322+09994220 31..00+00033703 51..1.+0000+000 87..10+00002100 81..00+00495889 82..00+00466548 83..00-00000529 71....+00000044 32..10+00033703 110236+00000236 21.322+20553420 22.322+09999230 31..00+00034896 51..1.+0000+000 87..10+00002100 81..00+00496970 82..00+00465235 83..00-00000556 71....+00000044 32..10+00034896 110237+00000237 21.322+20267460 22.322+10006820 31..00+00035826 51..1.+0000+000 87..10+00002100 81..00+00498495 82..00+00464206 83..00-00000598 71....+00000044 32..10+00035826 110238+00000238 21.322+19967060 22.322+10009030 31..00+00036545 51..1.+0000+000 87..10+00002100 81..00+00500189 82..00+00463456 83..00-00000612 71....+00000044 32..10+00036545 110239+00000239 21.322+19655610 22.322+10015870 31..00+00036734 51..1.+0000+000 87..10+00002100 81..00+00501986 82..00+00463320 83..00-00000651 71....+00000044 32..10+00036733 110240+00000240 21.322+19422680 22.322+10012860 31..00+00037468 51..1.+0000+000 87..10+00002100 81..00+00503393 82..00+00462686 83..00-00000636 71....+00000044 32..10+00037468 110241+00000241 21.322+19298970 22.322+10028100 31..00+00038432 51..1.+0000+000 87..10+00002100 81..00+00504223 82..00+00461802 83..00-00000730 71....+00000044 32..10+00038431 110242+00000242 21.322+19168910 22.322+10040190 31..00+00039742 51..1.+0000+000 87..10+00002100 81..00+00505173 82..00+00460597 83..00-00000811 71....+00000044 32..10+00039742 110243+00000243 21.322+19019380 22.322+10032630 31..00+00041194 51..1.+0000+000 87..10+00002100 81..00+00506320 82..00+00459294 83..00-00000771 71....+00000044 32..10+00041194 110244+00000244 21.322+19040890 22.322+10033690 31..00+00042581 51..1.+0000+000 87..10+00002100 81..00+00506391 82..00+00457902 83..00-00000785 71....+00000044 32..10+00042581 110245+00000245 21.322+18940270 22.322+10033740 31..00+00042977 51..1.+0000+000 87..10+00002100 81..00+00507121 82..00+00457618 83..00-00000788 71....+00000044 32..10+00042976 110246+00000246 21.322+18747130 22.322+10033800 31..00+00043331 51..1.+0000+000 87..10+00002100 81..00+00508473 82..00+00457506 83..00-00000790 71....+00000044 32..10+00043331 110247+00000247 21.322+18559180 22.322+10049460 31..00+00043686 51..1.+0000+000 87..10+00002100 81..00+00509803 82..00+00457429 83..00-00000899 71....+00000044 32..10+00043685 110248+00000248 21.322+18366160 22.322+10056090 31..00+00044176 51..1.+0000+000 87..10+00002100 81..00+00511213 82..00+00457273 83..00-00000949 71....+00000044 32..10+00044174 110249+00000249 21.322+18401920 22.322+10054170 31..00+00044918 51..1.+0000+000 87..10+00002100 81..00+00511157 82..00+00456492 83..00-00000942 71....+00000044 32..10+00044916 110250+00000250 21.322+24817960 22.322+10025990 31..00+00015841 51..1.+0000+000 87..10+00001800 81..00+00489124 82..00+00488483 83..00-00000325 71....+00000045 32..10+00015841 110251+00000251 21.322+25430860 22.322+10007520 31..00+00015800 51..1.+0000+000 87..10+00001800 81..00+00488097 82..00+00489609 83..00-00000279 71....+00000045 32..10+00015800 110252+00000252 21.322+26050920 22.322+09999870 31..00+00015547 51..1.+0000+000 87..10+00001800 81..00+00487349 82..00+00490962 83..00-00000260 71....+00000045 32..10+00015547 110253+00000253 21.322+26435740 22.322+10015560 31..00+00015340 51..1.+0000+000 87..10+00001800 81..00+00487002 82..00+00491853 83..00-00000297 71....+00000045 32..10+00015340 110254+00000254 21.322+27029190 22.322+10015630 31..00+00015437 51..1.+0000+000 87..10+00001800 81..00+00486214 82..00+00493055 83..00-00000298 71....+00000045 32..10+00015437 110255+00000255 21.322+27401890 22.322+10026440 31..00+00016166 51..1.+0000+000 87..10+00001800 81..00+00485161 82..00+00493584 83..00-00000327 71....+00000045 32..10+00016166 110256+00000256 21.322+27446050 22.322+10016040 31..00+00017130 51..1.+0000+000 87..10+00001800 81..00+00484230 82..00+00493311 83..00-00000303 71....+00000045 32..10+00017130 110257+00000257 21.322+27649480 22.322+09964410 31..00+00018173 51..1.+0000+000 87..10+00001800 81..00+00483052 82..00+00493442 83..00-00000158 71....+00000045 32..10+00018173 110258+00000258 21.322+28050610 22.322+09982040 31..00+00019399 51..1.+0000+000 87..10+00001800 81..00+00481503 82..00+00494152 83..00-00000205 71....+00000045 32..10+00019399 110259+00000259 21.322+28305470 22.322+09973890 31..00+00020180 51..1.+0000+000 87..10+00001800 81..00+00480531 82..00+00494692 83..00-00000177 71....+00000045 32..10+00020180 110260+00000260 21.322+28590520 22.322+09990280 31..00+00020669 51..1.+0000+000 87..10+00001800 81..00+00479836 82..00+00495461 83..00-00000228 71....+00000045 32..10+00020669 110261+00000261 21.322+28428310 22.322+10001150 31..00+00021939 51..1.+0000+000 87..10+00001800 81..00+00478726 82..00+00494639 83..00-00000264 71....+00000045 32..10+00021939 110262+00000262 21.322+28286530 22.322+09987910 31..00+00023292 51..1.+0000+000 87..10+00001800 81..00+00477546 82..00+00493806 83..00-00000216 71....+00000045 32..10+00023292 110263+00000263 21.322+27860760 22.322+09975770 31..00+00023528 51..1.+0000+000 87..10+00001800 81..00+00477788 82..00+00492242 83..00-00000170 71....+00000045 32..10+00023528 110264+00000264 21.322+27495720 22.322+09978500 31..00+00025312 51..1.+0000+000 87..10+00001800 81..00+00476622 82..00+00490298 83..00-00000174 71....+00000045 32..10+00025312 110265+00000265 21.322+27508080 22.322+09963400 31..00+00027313 51..1.+0000+000 87..10+00001800 81..00+00474753 82..00+00489580 83..00-00000103 71....+00000045 32..10+00027313 110266+00000266 21.322+27386000 22.322+09946370 31..00+00029356 51..1.+0000+000 87..10+00001800 81..00+00473085 82..00+00488282 83..00-00000013 71....+00000045 32..10+00029355 110267+00000267 21.322+27439710 22.322+09926630 31..00+00031092 51..1.+0000+000 87..10+00001800 81..00+00471391 82..00+00487831 83..00+00000098 71....+00000045 32..10+00031090 110268+00000268 21.322+26938620 22.322+09937010 31..00+00030693 51..1.+0000+000 87..10+00001800 81..00+00472789 82..00+00485803 83..00+00000044 71....+00000045 32..10+00030692 110269+00000269 21.322+26614020 22.322+09960900 31..00+00029534 51..1.+0000+000 87..10+00001800 81..00+00474547 82..00+00485022 83..00-00000079 71....+00000045 32..10+00029533 110270+00000270 21.322+26304490 22.322+09985350 31..00+00028473 51..1.+0000+000 87..10+00001800 81..00+00476191 82..00+00484384 83..00-00000194 71....+00000045 32..10+00028473 110271+00000271 21.322+26063390 22.322+09997620 31..00+00028474 51..1.+0000+000 87..10+00001800 81..00+00476799 82..00+00483494 83..00-00000249 71....+00000045 32..10+00028474 110272+00000272 21.322+25774960 22.322+10006340 31..00+00028508 51..1.+0000+000 87..10+00001800 81..00+00477543 82..00+00482439 83..00-00000288 71....+00000045 32..10+00028508 110273+00000273 21.322+25511000 22.322+09993040 31..00+00028415 51..1.+0000+000 87..10+00001800 81..00+00478361 82..00+00481583 83..00-00000229 71....+00000045 32..10+00028415 110274+00000274 21.322+25135430 22.322+10000910 31..00+00027976 51..1.+0000+000 87..10+00001800 81..00+00479802 82..00+00480644 83..00-00000264 71....+00000045 32..10+00027976 110275+00000275 21.322+24636040 22.322+10012920 31..00+00028099 51..1.+0000+000 87..10+00001800 81..00+00481299 82..00+00479028 83..00-00000317 71....+00000045 32..10+00028099 110276+00000276 21.322+24178460 22.322+09995140 31..00+00027639 51..1.+0000+000 87..10+00001800 81..00+00483134 82..00+00478103 83..00-00000239 71....+00000045 32..10+00027639 110277+00000277 21.322+23739980 22.322+10015670 31..00+00027321 51..1.+0000+000 87..10+00001800 81..00+00484857 82..00+00477260 83..00-00000327 71....+00000045 32..10+00027321 110278+00000278 21.322+23625560 22.322+10015400 31..00+00026212 51..1.+0000+000 87..10+00001800 81..00+00485866 82..00+00477925 83..00-00000323 71....+00000045 32..10+00026212 110279+00000279 21.322+23564390 22.322+10021230 31..00+00024466 51..1.+0000+000 87..10+00001800 81..00+00487006 82..00+00479270 83..00-00000342 71....+00000045 32..10+00024466 110280+00000280 21.322+23779390 22.322+09998480 31..00+00022514 51..1.+0000+000 87..10+00001800 81..00+00487405 82..00+00481338 83..00-00000255 71....+00000045 32..10+00022514 110281+00000281 21.322+24121310 22.322+09991940 31..00+00020017 51..1.+0000+000 87..10+00001800 81..00+00487928 82..00+00484033 83..00-00000235 71....+00000045 32..10+00020017 110282+00000282 21.322+24251760 22.322+09976870 31..00+00018073 51..1.+0000+000 87..10+00001800 81..00+00488807 82..00+00485810 83..00-00000194 71....+00000045 32..10+00018073 110283+00000283 21.322+24444350 22.322+10001540 31..00+00016897 51..1.+0000+000 87..10+00001800 81..00+00489139 82..00+00487056 83..00-00000264 71....+00000045 32..10+00016897 110284+00000284 21.322+24776900 22.322+10000050 31..00+00015722 51..1.+0000+000 87..10+00001800 81..00+00489279 82..00+00488500 83..00-00000260 71....+00000045 32..10+00015722 110285+00000285 21.322+22419920 22.322+09981260 31..00+00039132 51..1.+0000+000 87..10+00001800 81..00+00485481 82..00+00463661 83..00-00000145 71....+00000046 32..10+00039132 110286+00000286 21.322+22042080 22.322+09983200 31..00+00039612 51..1.+0000+000 87..10+00001800 81..00+00487511 82..00+00462409 83..00-00000155 71....+00000046 32..10+00039612 110287+00000287 21.322+21867100 22.322+09992940 31..00+00039929 51..1.+0000+000 87..10+00001800 81..00+00488457 82..00+00461776 83..00-00000216 71....+00000046 32..10+00039929 110288+00000288 21.322+21719720 22.322+09990980 31..00+00041253 51..1.+0000+000 87..10+00001800 81..00+00488991 82..00+00460243 83..00-00000201 71....+00000046 32..10+00041253 110289+00000289 21.322+21720040 22.322+09983550 31..00+00042309 51..1.+0000+000 87..10+00001800 81..00+00488707 82..00+00459226 83..00-00000151 71....+00000046 32..10+00042309 110290+00000290 21.322+21815050 22.322+09983500 31..00+00043609 51..1.+0000+000 87..10+00001800 81..00+00487734 82..00+00458151 83..00-00000147 71....+00000046 32..10+00043609 110291+00000291 21.322+21979940 22.322+09976120 31..00+00044119 51..1.+0000+000 87..10+00001800 81..00+00486499 82..00+00457998 83..00-00000094 71....+00000046 32..10+00044119 110292+00000292 21.322+22115390 22.322+09973780 31..00+00044193 51..1.+0000+000 87..10+00001800 81..00+00485584 82..00+00458224 83..00-00000078 71....+00000046 32..10+00044193 110293+00000293 21.322+22243810 22.322+09970320 31..00+00044867 51..1.+0000+000 87..10+00001800 81..00+00484512 82..00+00457892 83..00-00000051 71....+00000046 32..10+00044866 110294+00000294 21.322+22463490 22.322+09963930 31..00+00044704 51..1.+0000+000 87..10+00001800 81..00+00483130 82..00+00458602 83..00-00000007 71....+00000046 32..10+00044704 110295+00000295 21.322+22562450 22.322+09964030 31..00+00043356 51..1.+0000+000 87..10+00001800 81..00+00483017 82..00+00460110 83..00-00000015 71....+00000046 32..10+00043355 110296+00000296 21.322+22695870 22.322+09968750 31..00+00042060 51..1.+0000+000 87..10+00001800 81..00+00482717 82..00+00461656 83..00-00000053 71....+00000046 32..10+00042059 110297+00000297 21.322+22554000 22.322+09964030 31..00+00041136 51..1.+0000+000 87..10+00001800 81..00+00483936 82..00+00462131 83..00-00000027 71....+00000046 32..10+00041135 110298+00000298 21.322+22439600 22.322+09980880 31..00+00040303 51..1.+0000+000 87..10+00001800 81..00+00484931 82..00+00462620 83..00-00000139 71....+00000046 32..10+00040303 110299+00000299 21.322+22434420 22.322+09978000 31..00+00039475 51..1.+0000+000 87..10+00001800 81..00+00485270 82..00+00463376 83..00-00000123 71....+00000046 32..10+00039475 110300+00000300 21.322+16804990 22.322+09955890 31..00+00073552 51..1.+0000+000 87..10+00001800 81..00+00535383 82..00+00435519 83..00+00000250 71....+00000021 32..10+00073551 110301+00000301 21.322+16807910 22.322+09955880 31..00+00073521 51..1.+0000+000 87..10+00001800 81..00+00535338 82..00+00435531 83..00+00000250 71....+00000021 32..10+00073519 110302+00000302 21.322+16856170 22.322+09947280 31..00+00071706 51..1.+0000+000 87..10+00001800 81..00+00533988 82..00+00436864 83..00+00000334 71....+00000021 32..10+00071703 110303+00000303 21.322+16940780 22.322+09921700 31..00+00067641 51..1.+0000+000 87..10+00001800 81..00+00531265 82..00+00440024 83..00+00000572 71....+00000021 32..10+00067636 110304+00000304 21.322+17044170 22.322+09919740 31..00+00063972 51..1.+0000+000 87..10+00001800 81..00+00528644 82..00+00442805 83..00+00000547 71....+00000021 32..10+00063967 110305+00000305 21.322+17112880 22.322+09930920 31..00+00059524 51..1.+0000+000 87..10+00001800 81..00+00526077 82..00+00446496 83..00+00000386 71....+00000021 32..10+00059521 110306+00000306 21.322+17015860 22.322+09946230 31..00+00055897 51..1.+0000+000 87..10+00001800 81..00+00525252 82..00+00450134 83..00+00000212 71....+00000021 32..10+00055895 110307+00000307 21.322+16648330 22.322+09968830 31..00+00050332 51..1.+0000+000 87..10+00001800 81..00+00525291 82..00+00456484 83..00-00000013 71....+00000021 32..10+00050332 110308+00000308 21.322+16298740 22.322+09986680 31..00+00045289 51..1.+0000+000 87..10+00001800 81..00+00524872 82..00+00462152 83..00-00000165 71....+00000021 32..10+00045289 110309+00000309 21.322+16184370 22.322+10006430 31..00+00042209 51..1.+0000+000 87..10+00001800 81..00+00523811 82..00+00465148 83..00-00000302 71....+00000021 32..10+00042209 110310+00000310 21.322+06150940 22.322+09147150 31..00+00023070 51..1.+0000+000 87..10+00001800 81..00+00518810 82..00+00512996 83..00+00002821 71....+00000022 32..10+00022863 110311+00000311 21.322+05775360 22.322+09179060 31..00+00022623 51..1.+0000+000 87..10+00001800 81..00+00517674 82..00+00513819 83..00+00002649 71....+00000022 32..10+00022435 110312+00000312 21.322+05083400 22.322+09279020 31..00+00022091 51..1.+0000+000 87..10+00001800 81..00+00515723 82..00+00515316 83..00+00002237 71....+00000022 32..10+00021950 110313+00000313 21.322+03828560 22.322+09335860 31..00+00022397 51..1.+0000+000 87..10+00001800 81..00+00512603 82..00+00518367 83..00+00002072 71....+00000022 32..10+00022276 110314+00000314 21.322+02558470 22.322+09384020 31..00+00022070 51..1.+0000+000 87..10+00001800 81..00+00508592 82..00+00520216 83..00+00001872 71....+00000022 32..10+00021966 110315+00000315 21.322+01697300 22.322+09460950 31..00+00022258 51..1.+0000+000 87..10+00001800 81..00+00505843 82..00+00521394 83..00+00001622 71....+00000022 32..10+00022178 110316+00000316 21.322+00821490 22.322+09499000 31..00+00021941 51..1.+0000+000 87..10+00001800 81..00+00502815 82..00+00521691 83..00+00001465 71....+00000022 32..10+00021873 110317+00000317 21.322+39533010 22.322+09527960 31..00+00021196 51..1.+0000+000 87..10+00001800 81..00+00498451 82..00+00521081 83..00+00001310 71....+00000022 32..10+00021138 110318+00000318 21.322+38664590 22.322+09602130 31..00+00020443 51..1.+0000+000 87..10+00001800 81..00+00495751 82..00+00519956 83..00+00001017 71....+00000022 32..10+00020403 110319+00000319 21.322+16753130 22.322+10047570 31..00+00038771 51..1.+0000+000 87..10+00001800 81..00+00518927 82..00+00466164 83..00-00000550 71....+00000047 32..10+00038770 110320+00000320 21.322+16716110 22.322+10047630 31..00+00035787 51..1.+0000+000 87..10+00001800 81..00+00517652 82..00+00468870 83..00-00000528 71....+00000047 32..10+00035786 110321+00000321 21.322+15946520 22.322+10001110 31..00+00036917 51..1.+0000+000 87..10+00001800 81..00+00521950 82..00+00470317 83..00-00000266 71....+00000047 32..10+00036917 110322+00000322 21.322+15956350 22.322+09999660 31..00+00041093 51..1.+0000+000 87..10+00001800 81..00+00524381 82..00+00466922 83..00-00000258 71....+00000047 32..10+00041093 110323+00000323 21.322+36346340 22.322+09687700 31..00+00021581 51..1.+0000+000 87..10+00001800 81..00+00488297 82..00+00518102 83..00+00000798 71....+00000022 32..10+00021555 110324+00000324 21.322+35213890 22.322+09742090 31..00+00023504 51..1.+0000+000 87..10+00001800 81..00+00483961 82..00+00517155 83..00+00000692 71....+00000022 32..10+00023485 110325+00000325 21.322+34070590 22.322+09764190 31..00+00025977 51..1.+0000+000 87..10+00001800 81..00+00479169 82..00+00515490 83..00+00000702 71....+00000022 32..10+00025959 110326+00000326 21.322+33135310 22.322+09793780 31..00+00028562 51..1.+0000+000 87..10+00001800 81..00+00474846 82..00+00513498 83..00+00000665 71....+00000022 32..10+00028547 110327+00000327 21.322+32329480 22.322+09797190 31..00+00030006 51..1.+0000+000 87..10+00001800 81..00+00471995 82..00+00510731 83..00+00000696 71....+00000022 32..10+00029991 110328+00000328 21.322+32102850 22.322+09775020 31..00+00030453 51..1.+0000+000 87..10+00001800 81..00+00471212 82..00+00509871 83..00+00000816 71....+00000022 32..10+00030434 110329+00000329 21.322+32257800 22.322+09762680 31..00+00031528 51..1.+0000+000 87..10+00001800 81..00+00470455 82..00+00510941 83..00+00000915 71....+00000022 32..10+00031506 110330+00000330 21.322+32254140 22.322+09764870 31..00+00031512 51..1.+0000+000 87..10+00001800 81..00+00470463 82..00+00510919 83..00+00000904 71....+00000022 32..10+00031491 110331+00000331 21.322+31638810 22.322+09741720 31..00+00031420 51..1.+0000+000 87..10+00001800 81..00+00469640 82..00+00507993 83..00+00001014 71....+00000022 32..10+00031394 110332+00000332 21.322+31807980 22.322+09738740 31..00+00032813 51..1.+0000+000 87..10+00001800 81..00+00468528 82..00+00509186 83..00+00001086 71....+00000022 32..10+00032785 110333+00000333 21.322+31333100 22.322+09756080 31..00+00034030 51..1.+0000+000 87..10+00001800 81..00+00466738 82..00+00507069 83..00+00001044 71....+00000022 32..10+00034005 110334+00000334 21.322+30788630 22.322+09785250 31..00+00036898 51..1.+0000+000 87..10+00001800 81..00+00463406 82..00+00504557 83..00+00000984 71....+00000022 32..10+00036877 110335+00000335 21.322+30472670 22.322+09809900 31..00+00040274 51..1.+0000+000 87..10+00001800 81..00+00459855 82..00+00502986 83..00+00000943 71....+00000022 32..10+00040256 110336+00000336 21.322+30124540 22.322+09810580 31..00+00043702 51..1.+0000+000 87..10+00001800 81..00+00456325 82..00+00500855 83..00+00001040 71....+00000022 32..10+00043683 110337+00000337 21.322+29709290 22.322+09807720 31..00+00047215 51..1.+0000+000 87..10+00001800 81..00+00452855 82..00+00497846 83..00+00001166 71....+00000022 32..10+00047194 110338+00000338 21.322+29424170 22.322+09800520 31..00+00049196 51..1.+0000+000 87..10+00001800 81..00+00451029 82..00+00495558 83..00+00001281 71....+00000022 32..10+00049172 110339+00000339 21.322+29122300 22.322+09779420 31..00+00051309 51..1.+0000+000 87..10+00001800 81..00+00449209 82..00+00492953 83..00+00001518 71....+00000022 32..10+00051278 110340+00000340 21.322+28732500 22.322+09766560 31..00+00053402 51..1.+0000+000 87..10+00001800 81..00+00447688 82..00+00489445 83..00+00001698 71....+00000022 32..10+00053366 110341+00000341 21.322+28311940 22.322+09750570 31..00+00055743 51..1.+0000+000 87..10+00001800 81..00+00446246 82..00+00485403 83..00+00001924 71....+00000022 32..10+00055700 110342+00000342 21.322+27593710 22.322+09761450 31..00+00059990 51..1.+0000+000 87..10+00001800 81..00+00444283 82..00+00477877 83..00+00001988 71....+00000022 32..10+00059948 110343+00000343 21.322+27253210 22.322+09758910 31..00+00063913 51..1.+0000+000 87..10+00001800 81..00+00441986 82..00+00473291 83..00+00002160 71....+00000022 32..10+00063867 110344+00000344 21.322+27057440 22.322+09747500 31..00+00068176 51..1.+0000+000 87..10+00001800 81..00+00439026 82..00+00469622 83..00+00002444 71....+00000022 32..10+00068122 110345+00000345 21.322+26950760 22.322+09772870 31..00+00073036 51..1.+0000+000 87..10+00001300 81..00+00435224 82..00+00466361 83..00+00002846 71....+00000022 32..10+00072990 110346+00000346 21.322+26939220 22.322+09773690 31..00+00072988 51..1.+0000+000 87..10+00001300 81..00+00435328 82..00+00466266 83..00+00002834 71....+00000022 32..10+00072942 110347+00000347 21.322+26856290 22.322+09761570 31..00+00077564 51..1.+0000+000 87..10+00001300 81..00+00431750 82..00+00463261 83..00+00003145 71....+00000022 32..10+00077510 110348+00000348 21.322+26753430 22.322+09749130 31..00+00081949 51..1.+0000+000 87..10+00001300 81..00+00428534 82..00+00460028 83..00+00003469 71....+00000022 32..10+00081885 110349+00000349 21.322+26711690 22.322+09739840 31..00+00084537 51..1.+0000+000 87..10+00001300 81..00+00426553 82..00+00458285 83..00+00003694 71....+00000022 32..10+00084467 110350+00000350 21.322+26701230 22.322+09728200 31..00+00085727 51..1.+0000+000 87..10+00001300 81..00+00425595 82..00+00457579 83..00+00003899 71....+00000022 32..10+00085649 110351+00000351 21.322+26702740 22.322+09692470 31..00+00088386 51..1.+0000+000 87..10+00001300 81..00+00423296 82..00+00456293 83..00+00004509 71....+00000022 32..10+00088283 110352+00000352 21.322+26673300 22.322+09669260 31..00+00090504 51..1.+0000+000 87..10+00001300 81..00+00421680 82..00+00454891 83..00+00004940 71....+00000022 32..10+00090381 110353+00000353 21.322+26671560 22.322+09670910 31..00+00089332 51..1.+0000+000 87..10+00001300 81..00+00422706 82..00+00455453 83..00+00004856 71....+00000022 32..10+00089212 110354+00000354 21.322+26657250 22.322+09650080 31..00+00092376 51..1.+0000+000 87..10+00001300 81..00+00420189 82..00+00453764 83..00+00005315 71....+00000022 32..10+00092236 110355+00000355 21.322+26646600 22.322+09620120 31..00+00095829 51..1.+0000+000 87..10+00001300 81..00+00417309 82..00+00451910 83..00+00005956 71....+00000022 32..10+00095658 110356+00000356 21.322+26650450 22.322+09594380 31..00+00099763 51..1.+0000+000 87..10+00001300 81..00+00413906 82..00+00450000 83..00+00006593 71....+00000022 32..10+00099560 110357+00000357 21.322+26602690 22.322+09562940 31..00+00102552 51..1.+0000+000 87..10+00001300 81..00+00411915 82..00+00447957 83..00+00007276 71....+00000022 32..10+00102311 110358+00000358 21.322+26556150 22.322+09525530 31..00+00106300 51..1.+0000+000 87..10+00001300 81..00+00409131 82..00+00445412 83..00+00008156 71....+00000022 32..10+00106005 110359+00000359 21.322+26492900 22.322+09502360 31..00+00110742 51..1.+0000+000 87..10+00001300 81..00+00405930 82..00+00442209 83..00+00008889 71....+00000022 32..10+00110404 110360+00000360 21.322+26436980 22.322+09492530 31..00+00115060 51..1.+0000+000 87..10+00001300 81..00+00402805 82..00+00439107 83..00+00009403 71....+00000022 32..10+00114694 110361+00000361 21.322+26378460 22.322+09441420 31..00+00120117 51..1.+0000+000 87..10+00002150 81..00+00399190 82..00+00435544 83..00+00009917 71....+00000022 32..10+00119655 110362+00000362 21.322+26355220 22.322+09463110 31..00+00124840 51..1.+0000+000 87..10+00001750 81..00+00395440 82..00+00432608 83..00+00010307 71....+00000022 32..10+00124396 110363+00000363 21.322+26353500 22.322+09466040 31..00+00129666 51..1.+0000+000 87..10+00001700 81..00+00391413 82..00+00429971 83..00+00010704 71....+00000022 32..10+00129210 110364+00000364 21.322+26365230 22.322+09461380 31..00+00127381 51..1.+0000+000 87..10+00001700 81..00+00393207 82..00+00431406 83..00+00010606 71....+00000030 32..10+00126925 110365+00000365 21.322+26429120 22.322+09462230 31..00+00125872 51..1.+0000+000 87..10+00001700 81..00+00393796 82..00+00433280 83..00+00010461 71....+00000030 32..10+00125423 110366+00000366 21.322+26422210 22.322+09464100 31..00+00123280 51..1.+0000+000 87..10+00001700 81..00+00396051 82..00+00434540 83..00+00010206 71....+00000030 32..10+00122843 110367+00000367 21.322+26451690 22.322+09467590 31..00+00119926 51..1.+0000+000 87..10+00001700 81..00+00398581 82..00+00436787 83..00+00009859 71....+00000030 32..10+00119507 110368+00000368 21.322+26536380 22.322+09473440 31..00+00116883 51..1.+0000+000 87..10+00001700 81..00+00400335 82..00+00439706 83..00+00009498 71....+00000030 32..10+00116484 110369+00000369 21.322+26615680 22.322+09482220 31..00+00114181 51..1.+0000+000 87..10+00001700 81..00+00401902 82..00+00442311 83..00+00009117 71....+00000030 32..10+00113804 110370+00000370 21.322+26678940 22.322+09492470 31..00+00111404 51..1.+0000+000 87..10+00001700 81..00+00403721 82..00+00444661 83..00+00008713 71....+00000030 32..10+00111050 110371+00000371 21.322+26744040 22.322+09506090 31..00+00109510 51..1.+0000+000 87..10+00001700 81..00+00404790 82..00+00446563 83..00+00008328 71....+00000030 32..10+00109181 110372+00000372 21.322+26829470 22.322+09503670 31..00+00102852 51..1.+0000+000 87..10+00002150 81..00+00409916 82..00+00451018 83..00+00007401 71....+00000030 32..10+00102540 110373+00000373 21.322+26854550 22.322+09503950 31..00+00099852 51..1.+0000+000 87..10+00002150 81..00+00412357 82..00+00452791 83..00+00007163 71....+00000030 32..10+00099549 110374+00000374 21.322+26883480 22.322+09522810 31..00+00099078 51..1.+0000+000 87..10+00002150 81..00+00412805 82..00+00453542 83..00+00006810 71....+00000030 32..10+00098800 110375+00000375 21.322+26879280 22.322+09548000 31..00+00098200 51..1.+0000+000 87..10+00001850 81..00+00413582 82..00+00453883 83..00+00006657 71....+00000030 32..10+00097953 110376+00000376 21.322+26883700 22.322+09550090 31..00+00097401 51..1.+0000+000 87..10+00001850 81..00+00414252 82..00+00454318 83..00+00006568 71....+00000030 32..10+00097157 110377+00000377 21.322+26612160 22.322+09621270 31..00+00092338 51..1.+0000+000 87..10+00001500 81..00+00420572 82..00+00453231 83..00+00005531 71....+00000030 32..10+00092175 110378+00000378 21.322+26514790 22.322+09644150 31..00+00091386 51..1.+0000+000 87..10+00001500 81..00+00422092 82..00+00452506 83..00+00005146 71....+00000030 32..10+00091243 110379+00000379 21.322+26461800 22.322+09663440 31..00+00090739 51..1.+0000+000 87..10+00001500 81..00+00423026 82..00+00452193 83..00+00004835 71....+00000030 32..10+00090612 110380+00000380 21.322+26382130 22.322+09703980 31..00+00089058 51..1.+0000+000 87..10+00001500 81..00+00425021 82..00+00452121 83..00+00004180 71....+00000030 32..10+00088962 110381+00000381 21.322+26245240 22.322+09740960 31..00+00087812 51..1.+0000+000 87..10+00001500 81..00+00427084 82..00+00451200 83..00+00003613 71....+00000030 32..10+00087739 110382+00000382 21.322+26213310 22.322+09771780 31..00+00085047 51..1.+0000+000 87..10+00001500 81..00+00429605 82..00+00452374 83..00+00003089 71....+00000030 32..10+00084992 110383+00000383 21.322+26225930 22.322+09776000 31..00+00082543 51..1.+0000+000 87..10+00001500 81..00+00431584 82..00+00453911 83..00+00002944 71....+00000030 32..10+00082492 110384+00000001 21.322+16207840 22.322+10078240 31..00+00036418 51..1.+0000+000 87..10+00001300 81..00+00520431 82..00+00469857 83..00-00000357 71....+00000024 32..10+00036415 110385+00000002 21.322+16147820 22.322+10115310 31..00+00031549 51..1.+0000+000 87..10+00001300 81..00+00517944 82..00+00474057 83..00-00000481 71....+00000024 32..10+00031544 110386+00000003 21.322+15975450 22.322+10165950 31..00+00026754 51..1.+0000+000 87..10+00001300 81..00+00515803 82..00+00478424 83..00-00000607 71....+00000024 32..10+00026745 110387+00000004 21.322+15731070 22.322+10205390 31..00+00021835 51..1.+0000+000 87..10+00001300 81..00+00513562 82..00+00482901 83..00-00000614 71....+00000024 32..10+00021824 110388+00000005 21.322+15341840 22.322+10230030 31..00+00017340 51..1.+0000+000 87..10+00001300 81..00+00511578 82..00+00487107 83..00-00000536 71....+00000024 32..10+00017329 110389+00000006 21.322+14798680 22.322+10243290 31..00+00013388 51..1.+0000+000 87..10+00001300 81..00+00509754 82..00+00490844 83..00-00000421 71....+00000024 32..10+00013378 110390+00000007 21.322+14045100 22.322+10242510 31..00+00009938 51..1.+0000+000 87..10+00001300 81..00+00507993 82..00+00494106 83..00-00000288 71....+00000024 32..10+00009931 110391+00000008 21.322+12341710 22.322+10155320 31..00+00006786 51..1.+0000+000 87..10+00001300 81..00+00506331 82..00+00497560 83..00-00000076 71....+00000024 32..10+00006784 110392+00000009 21.322+08828290 22.322+10092240 31..00+00004460 51..1.+0000+000 87..10+00001300 81..00+00504384 82..00+00500816 83..00+00000025 71....+00000024 32..10+00004459 110393+00000010 21.322+03623460 22.322+09972450 31..00+00004593 51..1.+0000+000 87..10+00001300 81..00+00502476 82..00+00503869 83..00+00000110 71....+00000024 32..10+00004593 110394+00000011 21.322+00405910 22.322+09887210 31..00+00007341 51..1.+0000+000 87..10+00001300 81..00+00500468 82..00+00507325 83..00+00000220 71....+00000024 32..10+00007340 110395+00000012 21.322+39103380 22.322+09820120 31..00+00010983 51..1.+0000+000 87..10+00001300 81..00+00498459 82..00+00510870 83..00+00000400 71....+00000024 32..10+00010979 110396+00000013 21.322+36808610 22.322+09395050 31..00+00013758 51..1.+0000+000 87..10+00002150 81..00+00493418 82..00+00512011 83..00+00000545 71....+00000024 32..10+00013696 110397+00000014 21.322+35839510 22.322+09826110 31..00+00018394 51..1.+0000+000 87..10+00001300 81..00+00488821 82..00+00514598 83..00+00000592 71....+00000024 32..10+00018387 110398+00000015 21.322+35255050 22.322+09849120 31..00+00022334 51..1.+0000+000 87..10+00001300 81..00+00484857 82..00+00516408 83..00+00000619 71....+00000024 32..10+00022327 110399+00000016 21.322+28226840 22.322+09790620 31..00+00056666 51..1.+0000+000 87..10+00001300 81..00+00445547 82..00+00484429 83..00+00001954 71....+00000025 32..10+00056636 110400+00000017 21.322+27674150 22.322+09794870 31..00+00059639 51..1.+0000+000 87..10+00001300 81..00+00444326 82..00+00478704 83..00+00002012 71....+00000025 32..10+00059609 110401+00000018 21.322+27220100 22.322+09798550 31..00+00062790 51..1.+0000+000 87..10+00001300 81..00+00443131 82..00+00473458 83..00+00002077 71....+00000025 32..10+00062758 110402+00000019 21.322+26762150 22.322+09794730 31..00+00066464 51..1.+0000+000 87..10+00001300 81..00+00441978 82..00+00467652 83..00+00002233 71....+00000025 32..10+00066430 110403+00000020 21.322+26408220 22.322+09796290 31..00+00070022 51..1.+0000+000 87..10+00001300 81..00+00440861 82..00+00462576 83..00+00002331 71....+00000025 32..10+00069986 110404+00000021 21.322+26031810 22.322+09796000 31..00+00074023 51..1.+0000+000 87..10+00001300 81..00+00439928 82..00+00456812 83..00+00002462 71....+00000025 32..10+00073985 110405+00000022 21.322+25670920 22.322+09805910 31..00+00076873 51..1.+0000+000 87..10+00001300 81..00+00440254 82..00+00451685 83..00+00002434 71....+00000025 32..10+00076837 110406+00000023 21.322+25288340 22.322+09818680 31..00+00079695 51..1.+0000+000 87..10+00001300 81..00+00441178 82..00+00446279 83..00+00002360 71....+00000025 32..10+00079662 110407+00000024 21.322+24890700 22.322+09814540 31..00+00082220 51..1.+0000+000 87..10+00001300 81..00+00442893 82..00+00440897 83..00+00002485 71....+00000025 32..10+00082185 110408+00000025 21.322+24473850 22.322+09810290 31..00+00084978 51..1.+0000+000 87..10+00001300 81..00+00445102 82..00+00435185 83..00+00002622 71....+00000025 32..10+00084940 110409+00000026 21.322+24085350 22.322+09816620 31..00+00087594 51..1.+0000+000 87..10+00001300 81..00+00447590 82..00+00429861 83..00+00002613 71....+00000025 32..10+00087558 110410+00000027 21.322+23755660 22.322+09823160 31..00+00089561 51..1.+0000+000 87..10+00001300 81..00+00450196 82..00+00425606 83..00+00002578 71....+00000025 32..10+00089526 110411+00000028 21.322+23477000 22.322+09807230 31..00+00091691 51..1.+0000+000 87..10+00001700 81..00+00452396 82..00+00421684 83..00+00002467 71....+00000025 32..10+00091649 110412+00000029 21.322+23128560 22.322+09815980 31..00+00093274 51..1.+0000+000 87..10+00001700 81..00+00456003 82..00+00417799 83..00+00002386 71....+00000025 32..10+00093235 110413+00000030 21.322+22713740 22.322+09802670 31..00+00094710 51..1.+0000+000 87..10+00002150 81..00+00460858 82..00+00413807 83..00+00002176 71....+00000025 32..10+00094664 110414+00000031 21.322+22362930 22.322+09814320 31..00+00096396 51..1.+0000+000 87..10+00002150 81..00+00465052 82..00+00410207 83..00+00002052 71....+00000025 32..10+00096355 110415+00000032 21.322+21992730 22.322+09832390 31..00+00098707 51..1.+0000+000 87..10+00002150 81..00+00469616 82..00+00406122 83..00+00001839 71....+00000025 32..10+00098672 110416+00000033 21.322+21711570 22.322+09849570 31..00+00101619 51..1.+0000+000 87..10+00002150 81..00+00473015 82..00+00402059 83..00+00001642 71....+00000025 32..10+00101591 110417+00000034 21.322+21424510 22.322+09861410 31..00+00104563 51..1.+0000+000 87..10+00002150 81..00+00476803 82..00+00398068 83..00+00001517 71....+00000025 32..10+00104538 110418+00000035 21.322+21106640 22.322+09877500 31..00+00108250 51..1.+0000+000 87..10+00002150 81..00+00481281 82..00+00393401 83..00+00001324 71....+00000025 32..10+00108230 110419+00000036 21.322+20949200 22.322+09916640 31..00+00111322 51..1.+0000+000 87..10+00001600 81..00+00483465 82..00+00389922 83..00+00001248 71....+00000025 32..10+00111313 110420+00000300 21.322+05060390 22.322+09267840 31..00+00038140 51..1.+0000+000 87..10+00001300 81..00+00527044 82..00+00526535 83..00+00004467 71....+00000050 32..10+00037888 110421+00000301 21.322+06253040 22.322+09223910 31..00+00034869 51..1.+0000+000 87..10+00001720 81..00+00528786 82..00+00519214 83..00+00003910 71....+00000050 32..10+00034610 110422+00000302 21.322+07300000 22.322+09527900 31..00+00016209 51..1.+0000+000 87..10+00001300 81..00+00514733 82..00+00506652 83..00+00001291 71....+00000050 32..10+00016165 110423+00000303 21.322+09298900 22.322+09654480 31..00+00015929 51..1.+0000+000 87..10+00001300 81..00+00515809 82..00+00501748 83..00+00000954 71....+00000050 32..10+00015906 110424+00000304 21.322+11275300 22.322+09835940 31..00+00017170 51..1.+0000+000 87..10+00001300 81..00+00516821 82..00+00496585 83..00+00000532 71....+00000050 32..10+00017164 110425+00000305 21.322+12344050 22.322+09832400 31..00+00020837 51..1.+0000+000 87..10+00001300 81..00+00519434 82..00+00492503 83..00+00000639 71....+00000050 32..10+00020830 110426+00000306 21.322+12878460 22.322+09944030 31..00+00020598 51..1.+0000+000 87..10+00001300 81..00+00518527 82..00+00491001 83..00+00000271 71....+00000050 32..10+00020597 110427+00000307 21.322+13149860 22.322+09891510 31..00+00023157 51..1.+0000+000 87..10+00001300 81..00+00520377 82..00+00489006 83..00+00000485 71....+00000050 32..10+00023154 110428+00000308 21.322+13673600 22.322+09956540 31..00+00023544 51..1.+0000+000 87..10+00001300 81..00+00519731 82..00+00487156 83..00+00000251 71....+00000050 32..10+00023544 110429+00000309 21.322+14903240 22.322+10049470 31..00+00029957 51..1.+0000+000 87..10+00001300 81..00+00521502 82..00+00479142 83..00-00000143 71....+00000050 32..10+00029956 110430+00000310 21.322+15161020 22.322+10014060 31..00+00032595 51..1.+0000+000 87..10+00001300 81..00+00522458 82..00+00476377 83..00+00000018 71....+00000050 32..10+00032595 110431+00000311 21.322+03192490 22.322+09366290 31..00+00031433 51..1.+0000+000 87..10+00001300 81..00+00515036 82..00+00527426 83..00+00003214 71....+00000050 32..10+00031277 110432+00000312 21.322+02312470 22.322+09385590 31..00+00031731 51..1.+0000+000 87..10+00001300 81..00+00511222 82..00+00529522 83..00+00003148 71....+00000050 32..10+00031583 110433+00000313 21.322+01484180 22.322+09383280 31..00+00033557 51..1.+0000+000 87..10+00001300 81..00+00507716 82..00+00532496 83..00+00003336 71....+00000050 32..10+00033400 110434+00000314 21.322+01074350 22.322+09421030 31..00+00033607 51..1.+0000+000 87..10+00001300 81..00+00505621 82..00+00532992 83..00+00003142 71....+00000050 32..10+00033468 110435+00000315 21.322+00566330 22.322+09443600 31..00+00033780 51..1.+0000+000 87..10+00001300 81..00+00502990 82..00+00533518 83..00+00003039 71....+00000050 32..10+00033651 110436+00000316 21.322+39981550 22.322+09432270 31..00+00033116 51..1.+0000+000 87..10+00001580 81..00+00499904 82..00+00532984 83..00+00002759 71....+00000050 32..10+00032984 110437+00000317 21.322+39397270 22.322+09508210 31..00+00034150 51..1.+0000+000 87..10+00001300 81..00+00496781 82..00+00533896 83..00+00002726 71....+00000050 32..10+00034048 110438+00000318 21.322+39010910 22.322+09541910 31..00+00033479 51..1.+0000+000 87..10+00001300 81..00+00494833 82..00+00532990 83..00+00002497 71....+00000050 32..10+00033392 110439+00000319 21.322+38702520 22.322+09555400 31..00+00032424 51..1.+0000+000 87..10+00001450 81..00+00493453 82..00+00531676 83..00+00002203 71....+00000050 32..10+00032345 110440+00000320 21.322+08704950 22.322+30279660 31..00+00060678 51..1.+0000+000 87..10+00001750 81..00+00440630 82..00+00487753 83..00+00002305 71....+00000051 32..10+00060620 110441+00000321 21.322+08423970 22.322+30326530 31..00+00062339 51..1.+0000+000 87..10+00001750 81..00+00439642 82..00+00484745 83..00+00002836 71....+00000051 32..10+00062256 110442+00000322 21.322+08424000 22.322+30326730 31..00+00062340 51..1.+0000+000 87..10+00002150 81..00+00439641 82..00+00484745 83..00+00002438 71....+00000051 32..10+00062257 110443+00000323 21.322+08258650 22.322+30326970 31..00+00065172 51..1.+0000+000 87..10+00002000 81..00+00437334 82..00+00482418 83..00+00002736 71....+00000051 32..10+00065086 110444+00000324 21.322+07986080 22.322+30332140 31..00+00066715 51..1.+0000+000 87..10+00002150 81..00+00436682 82..00+00479274 83..00+00002719 71....+00000051 32..10+00066624 110445+00000325 21.322+03634630 22.322+30245770 31..00+00109833 51..1.+0000+000 87..10+00002150 81..00+00440689 82..00+00407655 83..00+00003480 71....+00000051 32..10+00109751 110446+00000326 21.322+03359460 22.322+30233450 31..00+00106976 51..1.+0000+000 87..10+00002150 81..00+00446168 82..00+00407638 83..00+00003163 71....+00000051 32..10+00106904 110447+00000327 21.322+03231540 22.322+30227110 31..00+00109075 51..1.+0000+000 87..10+00002150 81..00+00447014 82..00+00404739 83..00+00003131 71....+00000051 32..10+00109005 110448+00000328 21.322+00206680 22.322+30159340 31..00+00084654 51..1.+0000+000 87..10+00001850 81..00+00497253 82..00+00415417 83..00+00001659 71....+00000051 32..10+00084627 110449+00000329 21.322+26324030 22.322+09462600 31..00+00112340 51..1.+0000+000 87..10+00001600 81..00+00406209 82..00+00438896 83..00+00009263 71....+00000052 32..10+00111940 110450+00000330 21.322+26201660 22.322+09472930 31..00+00113496 51..1.+0000+000 87..10+00001450 81..00+00406435 82..00+00436449 83..00+00009327 71....+00000052 32..10+00113107 110451+00000331 21.322+25987580 22.322+09506070 31..00+00114363 51..1.+0000+000 87..10+00001450 81..00+00407888 82..00+00432802 83..00+00008805 71....+00000052 32..10+00114019 110452+00000332 21.322+25868240 22.322+09622050 31..00+00101314 51..1.+0000+000 87..10+00001450 81..00+00419427 82..00+00438873 83..00+00005952 71....+00000052 32..10+00101136 110453+00000333 21.322+25560760 22.322+09676710 31..00+00103758 51..1.+0000+000 87..10+00001450 81..00+00420565 82..00+00433457 83..00+00005207 71....+00000052 32..10+00103624 110454+00000334 21.322+25413750 22.322+09680430 31..00+00106747 51..1.+0000+000 87..10+00001450 81..00+00419877 82..00+00429669 83..00+00005297 71....+00000052 32..10+00106612 110455+00000335 21.322+25360830 22.322+09722420 31..00+00102017 51..1.+0000+000 87..10+00001450 81..00+00423965 82..00+00432130 83..00+00004387 71....+00000052 32..10+00101920 110456+00000336 21.322+25214790 22.322+09695140 31..00+00109258 51..1.+0000+000 87..10+00001450 81..00+00420272 82..00+00425478 83..00+00005171 71....+00000052 32..10+00109133 110457+00000337 21.322+25028240 22.322+09704780 31..00+00112170 51..1.+0000+000 87..10+00001450 81..00+00420418 82..00+00421121 83..00+00005141 71....+00000052 32..10+00112050 110458+00000338 21.322+24899790 22.322+09721210 31..00+00111990 51..1.+0000+000 87..10+00001550 81..00+00422142 82..00+00419652 83..00+00004744 71....+00000052 32..10+00111883 110459+00000339 21.322+24661010 22.322+09737480 31..00+00112243 51..1.+0000+000 87..10+00001550 81..00+00425033 82..00+00416591 83..00+00004468 71....+00000052 32..10+00112148 110460+00000340 21.322+20892180 22.322+09906620 31..00+00106579 51..1.+0000+000 87..10+00001600 81..00+00485114 82..00+00394477 83..00+00001354 71....+00000052 32..10+00106568 110461+00000341 21.322+20793090 22.322+09904970 31..00+00086796 51..1.+0000+000 87..10+00001300 81..00+00489216 82..00+00413887 83..00+00001386 71....+00000052 32..10+00086786 110462+00000342 21.322+15144140 22.322+10093010 31..00+00023967 51..1.+0000+000 87..10+00001300 81..00+00516558 82..00+00482675 83..00-00000260 71....+00000060 32..10+00023965 110463+00000343 21.322+14747150 22.322+10100610 31..00+00020277 51..1.+0000+000 87..10+00001300 81..00+00514894 82..00+00486244 83..00-00000230 71....+00000060 32..10+00020274 110464+00000344 21.322+14107980 22.322+10154420 31..00+00019294 51..1.+0000+000 87..10+00001300 81..00+00515410 82..00+00488399 83..00-00000378 71....+00000060 32..10+00019289 110465+00000345 21.322+14320580 22.322+10182820 31..00+00017972 51..1.+0000+000 87..10+00001300 81..00+00513984 82..00+00488723 83..00-00000426 71....+00000060 32..10+00017964 110466+00000346 21.322+14862050 22.322+10199570 31..00+00018176 51..1.+0000+000 87..10+00001300 81..00+00513122 82..00+00487435 83..00-00000480 71....+00000060 32..10+00018167 110467+00000347 21.322+15189490 22.322+10187980 31..00+00019652 51..1.+0000+000 87..10+00001300 81..00+00513471 82..00+00485703 83..00-00000490 71....+00000060 32..10+00019644 110468+00000348 21.322+15321570 22.322+10182410 31..00+00021181 51..1.+0000+000 87..10+00001300 81..00+00514196 82..00+00484292 83..00-00000517 71....+00000060 32..10+00021173 110469+00000349 21.322+15303990 22.322+10173590 31..00+00022305 51..1.+0000+000 87..10+00001300 81..00+00514995 82..00+00483500 83..00-00000518 71....+00000060 32..10+00022296 110470+00000350 21.322+15506270 22.322+10183310 31..00+00022945 51..1.+0000+000 87..10+00001300 81..00+00514878 82..00+00482545 83..00-00000571 71....+00000060 32..10+00022935 110471+00000351 21.322+15598150 22.322+10186790 31..00+00023680 51..1.+0000+000 87..10+00001300 81..00+00515093 82..00+00481766 83..00-00000605 71....+00000060 32..10+00023670 110472+00000352 21.322+15535500 22.322+10170180 31..00+00024914 51..1.+0000+000 87..10+00001300 81..00+00516069 82..00+00480972 83..00-00000576 71....+00000060 32..10+00024905 110473+00000353 21.322+15257180 22.322+10139120 31..00+00025527 51..1.+0000+000 87..10+00001300 81..00+00517302 82..00+00481240 83..00-00000468 71....+00000060 32..10+00025521 110474+00000354 21.322+14917880 22.322+10139360 31..00+00025130 51..1.+0000+000 87..10+00001300 81..00+00517993 82..00+00482465 83..00-00000460 71....+00000060 32..10+00025124 110475+00000355 21.322+14747170 22.322+10132080 31..00+00023971 51..1.+0000+000 87..10+00001300 81..00+00517606 82..00+00483740 83..00-00000407 71....+00000060 32..10+00023965 110476+00000356 21.322+14590340 22.322+10119040 31..00+00022413 51..1.+0000+000 87..10+00001300 81..00+00516831 82..00+00485206 83..00-00000329 71....+00000060 32..10+00022409 110477+00000357 21.322+14329460 22.322+10128120 31..00+00020816 51..1.+0000+000 87..10+00001300 81..00+00516182 82..00+00486913 83..00-00000329 71....+00000060 32..10+00020811 110478+00000358 21.322+31885050 22.322+09743100 31..00+00029363 51..1.+0000+000 87..10+00001770 81..00+00471938 82..00+00508561 83..00+00000805 71....+00000060 32..10+00029339 110479+00000359 21.322+31765260 22.322+09736790 31..00+00029500 51..1.+0000+000 87..10+00001720 81..00+00471651 82..00+00508069 83..00+00000889 71....+00000060 32..10+00029474 110480+00000360 21.322+31761050 22.322+09824840 31..00+00028902 51..1.+0000+000 87..10+00001570 81..00+00472207 82..00+00507891 83..00+00000615 71....+00000060 32..10+00028892 110481+00000361 21.322+31922760 22.322+09872300 31..00+00028461 51..1.+0000+000 87..10+00001390 81..00+00472833 82..00+00508464 83..00+00000571 71....+00000060 32..10+00028455 110482+00000362 21.322+32042350 22.322+09857450 31..00+00028936 51..1.+0000+000 87..10+00001370 81..00+00472547 82..00+00509122 83..00+00000668 71....+00000060 32..10+00028929 110483+00000363 21.322+31998520 22.322+09842050 31..00+00030030 51..1.+0000+000 87..10+00001300 81..00+00471446 82..00+00509270 83..00+00000835 71....+00000060 32..10+00030021 110484+00000364 21.322+30686750 22.322+09784520 31..00+00042891 51..1.+0000+000 87..10+00001300 81..00+00457383 82..00+00504615 83..00+00001542 71....+00000060 32..10+00042867 110485+00000365 21.322+30711850 22.322+09833060 31..00+00041468 51..1.+0000+000 87..10+00001300 81..00+00458806 82..00+00504626 83..00+00001177 71....+00000060 32..10+00041453 110486+00000366 21.322+30849770 22.322+09816910 31..00+00041742 51..1.+0000+000 87..10+00001300 81..00+00458647 82..00+00505553 83..00+00001290 71....+00000060 32..10+00041724 110487+00000367 21.322+30928890 22.322+09813340 31..00+00042668 51..1.+0000+000 87..10+00001300 81..00+00457803 82..00+00506201 83..00+00001341 71....+00000060 32..10+00042650 110488+00000368 21.322+30873510 22.322+09817890 31..00+00043643 51..1.+0000+000 87..10+00001300 81..00+00456785 82..00+00505967 83..00+00001338 71....+00000060 32..10+00043625 110489+00000369 21.322+30714530 22.322+09826340 31..00+00044343 51..1.+0000+000 87..10+00001300 81..00+00455953 82..00+00504965 83..00+00001300 71....+00000060 32..10+00044326 110490+00000370 21.322+30483210 22.322+09844140 31..00+00043881 51..1.+0000+000 87..10+00001300 81..00+00456258 82..00+00503326 83..00+00001164 71....+00000060 32..10+00043868 110491+00000371 21.322+30502810 22.322+09843800 31..00+00042599 51..1.+0000+000 87..10+00001300 81..00+00457547 82..00+00503360 83..00+00001135 71....+00000060 32..10+00042586 110492+00000372 21.322+30579810 22.322+09835960 31..00+00041410 51..1.+0000+000 87..10+00001300 81..00+00458776 82..00+00503765 83..00+00001157 71....+00000060 32..10+00041396 110493+00000584 21.322+17657970 22.322+10073440 31..00+00046177 51..1.+0000+000 87..10+00002150 81..00+00516606 82..00+00456915 83..00-00001233 71....+00000070 32..10+00046174 110494+00000800 21.322+30380470 22.322+09886300 31..00+00058943 51..1.+0000+000 87..10+00001600 81..00+00465284 82..00+00448849 83..00+00001207 71....+00000070 32..10+00058934 110495+00000801 21.322+30322120 22.322+09882390 31..00+00059919 51..1.+0000+000 87..10+00001600 81..00+00464281 82..00+00448359 83..00+00001261 71....+00000070 32..10+00059909 110496+00STAZ02 21.322+37624260 22.322+09451230 31..00+00020555 51..1.+0000+000 87..10+00002150 71....+00000070 32..10+00020479 110497+00STAZ03 21.322+04023910 22.322+09799050 31..00+00020896 51..1.+0000+000 87..10+00002150 71....+00000070 32..10+00020885 110498+STAZLIB3 25.342+20904010 84..40+00519659 85..40+00465244 86..40-00000588 87..10+00002150 88..10+00001350 110499+STAZLIB3 25.342+20904010 84..40+00519659 85..40+00465244 86..40-00000588 87..10+00002150 88..10+00001350 110500+00000850 21.322+28199190 22.322+09784250 31..00+00072875 51..1.+0000+000 87..10+00001300 81..00+00449720 82..00+00444915 83..00+00001932 71....+00000070 32..10+00072833 110501+00000851 21.322+27483760 22.322+09903080 31..00+00040636 51..1.+0000+000 87..10+00001300 81..00+00482161 82..00+00449600 83..00+00000081 71....+00000070 32..10+00040631 110502+00000852 21.322+21773190 22.322+10459160 31..00+00009048 51..1.+0000+000 87..10+00001300 81..00+00517177 82..00+00456567 83..00-00001190 71....+0000MK10 32..10+00009025 110503+00000853 21.322+22024920 22.322+10411140 31..00+00008332 51..1.+0000+000 87..10+00001300 81..00+00517059 82..00+00457347 83..00-00001075 71....+0000MK11 32..10+00008314 110504+00000854 21.322+21557420 22.322+10400910 31..00+00008085 51..1.+0000+000 87..10+00001300 81..00+00517704 82..00+00457415 83..00-00001046 71....+0000MK12 32..10+00008069 110505+00000855 21.322+21346530 22.322+10422860 31..00+00008811 51..1.+0000+000 87..10+00001300 81..00+00517813 82..00+00456649 83..00-00001122 71....+0000MK14 32..10+00008791 110506+00000856 21.322+21769860 22.322+10457420 31..00+00009043 51..1.+0000+000 87..10+00001300 81..00+00517183 82..00+00456570 83..00-00001187 71....+0000MK10 32..10+00009020 110507+00000857 21.322+22024860 22.322+10412030 31..00+00008340 51..1.+0000+000 87..10+00001300 81..00+00517056 82..00+00457339 83..00-00001077 71....+0000MK11 32..10+00008322 110508+00000858 21.322+21556490 22.322+10400620 31..00+00008093 51..1.+0000+000 87..10+00001300 81..00+00517704 82..00+00457407 83..00-00001047 71....+0000MK12 32..10+00008077 110509+00000859 21.322+21344410 22.322+10420980 31..00+00008813 51..1.+0000+000 87..10+00001300 81..00+00517815 82..00+00456645 83..00-00001120 71....+0000MK13 32..10+00008794 110510+00000860 21.322+20964260 22.322+10461840 31..00+00007849 51..1.+0000+000 87..10+00001300 81..00+00518478 82..00+00457506 83..00-00001106 71....+0000MK14 32..10+00007828 110511+00000861 21.322+20809900 22.322+10441050 31..00+00008620 51..1.+0000+000 87..10+00001300 81..00+00518568 82..00+00456714 83..00-00001134 71....+0000MK15 32..10+00008599 110512+00000862 21.322+20463620 22.322+10455450 31..00+00007707 51..1.+0000+000 87..10+00001300 81..00+00519099 82..00+00457577 83..00-00001089 71....+0000MK16 32..10+00007688 110513+00000863 21.322+20322280 22.322+10424630 31..00+00008457 51..1.+0000+000 87..10+00001300 81..00+00519232 82..00+00456816 83..00-00001101 71....+0000MK17 32..10+00008439 110514+00000864 21.322+19876760 22.322+10418280 31..00+00008342 51..1.+0000+000 87..10+00001300 81..00+00519820 82..00+00456921 83..00-00001085 71....+0000MK18 32..10+00008324 110515+00000865 21.322+19876790 22.322+10418410 31..00+00008351 51..1.+0000+000 87..10+00001300 81..00+00519820 82..00+00456913 83..00-00001086 71....+0000MK18 32..10+00008333 110516+00000866 21.322+19955620 22.322+10476850 31..00+00007624 51..1.+0000+000 87..10+00001300 81..00+00519712 82..00+00457641 83..00-00001108 71....+0000MK19 32..10+00007603 110517+00000867 21.322+19188620 22.322+10497850 31..00+00007584 51..1.+0000+000 87..10+00001300 81..00+00520620 82..00+00457745 83..00-00001130 71....+0000MK20 32..10+00007561 110518+00000868 21.322+19210220 22.322+10439690 31..00+00008284 51..1.+0000+000 87..10+00001300 81..00+00520681 82..00+00457043 83..00-00001109 71....+0000MK21 32..10+00008264 110519+00000869 21.322+18586250 22.322+10589150 31..00+00008323 51..1.+0000+000 87..10+00001300 81..00+00521484 82..00+00457160 83..00-00001307 71....+0000MK22 32..10+00008288 110520+00000870 21.322+18534500 22.322+10653840 31..00+00007608 51..1.+0000+000 87..10+00001300 81..00+00521386 82..00+00457875 83..00-00001318 71....+0000MK23 32..10+00007568 110521+00000871 21.322+17903450 22.322+10133210 31..00+00007689 51..1.+0000+000 87..10+00001900 81..00+00522145 82..00+00457970 83..00-00001298 71....+0000MK24 32..10+00007687 110522+00000872 21.322+18056270 22.322+10154800 31..00+00008403 51..1.+0000+000 87..10+00001900 81..00+00522184 82..00+00457232 83..00-00001342 71....+0000MK25 32..10+00008400 110523+00000873 21.322+17461600 22.322+10178720 31..00+00007815 51..1.+0000+000 87..10+00001900 81..00+00522692 82..00+00458045 83..00-00001357 71....+0000MK26 32..10+00007812 110524+00000874 21.322+17582860 22.322+10201970 31..00+00008549 51..1.+0000+000 87..10+00001900 81..00+00522825 82..00+00457308 83..00-00001409 71....+0000MK27 32..10+00008544 110525+00STAZ03 21.322+02737840 22.322+10352010 31..00+00020095 51..1.+0000+000 87..10+00001300 71....+0000MK27 32..10+00020065 110526+STAZION1 21.322+08382400 22.322+10047050 31..00+00060098 51..1.+0000+000 87..10+00001300 71....+0000MK27 32..10+00060097 110527+STAZLIB4 25.342+28951540 84..40+00524441 85..40+00445069 86..40+00000388 87..10+00001300 88..10+00001330 110528+STAZION1 81..00+00500000 82..00+00500000 83..00+00000000 110529+STAZION1 21.322+37333780 22.322+10039750 31..00+00060114 51..1.+0000+000 87..10+00001300 71....+0000000/ 32..10+00060113 110530+00STAZ03 21.322+31691030 22.322+10350670 31..00+00020107 51..1.+0000+000 87..10+00001300 71....+0000000/ 32..10+00020076 110531+STAZLIB4 25.342+39999650 84..40+00524452 85..40+00445059 86..40+00000352 87..10+00001300 88..10+00001330 110532+00000900 21.322+28381230 22.322+11361090 31..00+00009288 51..1.+0000+000 87..10+00001300 81..00+00515667 82..00+00442776 83..00-00001589 71....+00000080 32..10+00009077 110533+00000901 21.322+28345930 22.322+11418710 31..00+00009573 51..1.+0000+000 87..10+00001300 81..00+00515429 82..00+00442660 83..00-00001734 71....+00000080 32..10+00009336 110534+00000902 21.322+28399580 22.322+11418300 31..00+00009740 51..1.+0000+000 87..10+00001300 81..00+00515251 82..00+00442696 83..00-00001770 71....+00000080 32..10+00009499 110535+00000903 21.322+28531670 22.322+11439560 31..00+00009716 51..1.+0000+000 87..10+00001300 81..00+00515234 82..00+00442894 83..00-00001796 71....+00000080 32..10+00009469 110536+00000904 21.322+28622410 22.322+11280400 31..00+00009458 51..1.+0000+000 87..10+00001500 81..00+00515401 82..00+00443069 83..00-00001707 71....+00000080 32..10+00009267 110537+00000905 21.322+28446540 22.322+11194350 31..00+00009477 51..1.+0000+000 87..10+00001500 81..00+00515417 82..00+00442810 83..00-00001585 71....+00000080 32..10+00009310 110538+00000906 21.322+28345210 22.322+11261000 31..00+00009329 51..1.+0000+000 87..10+00001500 81..00+00515613 82..00+00442708 83..00-00001654 71....+00000080 32..10+00009146 110539+00000907 21.322+28372750 22.322+11359860 31..00+00009691 51..1.+0000+000 87..10+00001500 81..00+00515289 82..00+00442664 83..00-00001872 71....+00000080 32..10+00009471 110540+00000908 21.322+28380860 22.322+11353650 31..00+00009778 51..1.+0000+000 87..10+00001500 81..00+00515202 82..00+00442654 83..00-00001881 71....+00000080 32..10+00009557 110541+00000909 21.322+28439560 22.322+11356470 31..00+00009800 51..1.+0000+000 87..10+00001500 81..00+00515159 82..00+00442735 83..00-00001890 71....+00000080 32..10+00009579 110542+00000910 21.322+28448570 22.322+11332610 31..00+00009721 51..1.+0000+000 87..10+00001500 81..00+00515224 82..00+00442765 83..00-00001838 71....+00000080 32..10+00009509 110543+00000911 21.322+28475790 22.322+11316850 31..00+00009794 51..1.+0000+000 87..10+00001500 81..00+00515140 82..00+00442786 83..00-00001829 71....+00000080 32..10+00009585 110544+00000912 21.322+28541530 22.322+11332570 31..00+00009818 51..1.+0000+000 87..10+00001500 81..00+00515099 82..00+00442878 83..00-00001858 71....+00000080 32..10+00009603 110545+00000913 21.322+28569460 22.322+11159050 31..00+00009669 51..1.+0000+000 87..10+00001800 81..00+00515182 82..00+00442940 83..00-00001869 71....+00000080 32..10+00009509 110546+00000914 21.322+28484200 22.322+11046190 31..00+00009607 51..1.+0000+000 87..10+00001800 81..00+00515242 82..00+00442824 83..00-00001690 71....+00000080 32..10+00009477 110547+00000915 21.322+28382180 22.322+11160530 31..00+00009722 51..1.+0000+000 87..10+00001800 81..00+00515198 82..00+00442655 83..00-00001880 71....+00000080 32..10+00009560 110548+00000916 21.322+28340430 22.322+10980190 31..00+00009808 51..1.+0000+000 87..10+00001800 81..00+00515088 82..00+00442561 83..00-00001622 71....+00000080 32..10+00009692 110549+00000917 21.322+28331050 22.322+11320050 31..00+00010109 51..1.+0000+000 87..10+00001800 81..00+00514897 82..00+00442495 83..00-00002199 71....+00000080 32..10+00009892 110550+00000918 21.322+28437020 22.322+11249810 31..00+00010116 51..1.+0000+000 87..10+00001800 81..00+00514828 82..00+00442648 83..00-00002091 71....+00000080 32..10+00009921 110551+00000919 21.322+28588540 22.322+11139420 31..00+00009849 51..1.+0000+000 87..10+00001800 81..00+00514997 82..00+00442928 83..00-00001871 71....+00000080 32..10+00009692 110552+00000920 21.322+28432510 22.322+11249960 31..00+00009973 51..1.+0000+000 87..10+00001300 81..00+00514966 82..00+00442675 83..00-00001563 71....+00000080 32..10+00009781 110553+00000921 21.322+28298860 22.322+11332460 31..00+00010166 51..1.+0000+000 87..10+00001800 81..00+00514860 82..00+00442433 83..00-00002230 71....+00000080 32..10+00009944 110554+00000922 21.322+28300710 22.322+11403150 31..00+00010182 51..1.+0000+000 87..10+00001800 81..00+00514868 82..00+00442438 83..00-00002344 71....+00000080 32..10+00009936 110555+00000923 21.322+28346380 22.322+11454900 31..00+00010262 51..1.+0000+000 87..10+00001800 81..00+00514792 82..00+00442492 83..00-00002443 71....+00000080 32..10+00009995 110556+00000924 21.322+28583500 22.322+11180870 31..00+00010160 51..1.+0000+000 87..10+00002150 81..00+00514712 82..00+00442855 83..00-00002342 71....+00000080 32..10+00009986 110557+00000925 21.322+28794890 22.322+11212310 31..00+00010111 51..1.+0000+000 87..10+00002150 81..00+00514701 82..00+00443191 83..00-00002382 71....+00000080 32..10+00009928 110558+00000926 21.322+28815560 22.322+11185830 31..00+00009959 51..1.+0000+000 87..10+00002150 81..00+00514834 82..00+00443249 83..00-00002312 71....+00000080 32..10+00009787 110559+00000927 21.322+28771720 22.322+11106160 31..00+00009863 51..1.+0000+000 87..10+00002150 81..00+00514917 82..00+00443196 83..00-00002173 71....+00000080 32..10+00009715 110560+00000928 21.322+28625990 22.322+11055140 31..00+00010042 51..1.+0000+000 87..10+00002150 81..00+00514777 82..00+00442938 83..00-00002125 71....+00000080 32..10+00009904 110561+00000929 21.322+28522100 22.322+11067760 31..00+00010119 51..1.+0000+000 87..10+00002150 81..00+00514743 82..00+00442764 83..00-00002157 71....+00000080 32..10+00009977 110562+00000930 21.322+28413510 22.322+11206750 31..00+00010229 51..1.+0000+000 87..10+00002150 81..00+00514717 82..00+00442581 83..00-00002395 71....+00000080 32..10+00010046 110563+00000931 21.322+28378340 22.322+11087230 31..00+00010063 51..1.+0000+000 87..10+00002150 81..00+00514855 82..00+00442560 83..00-00002178 71....+00000080 32..10+00009917 110564+00000932 21.322+28421040 22.322+11033700 31..00+00010031 51..1.+0000+000 87..10+00002150 81..00+00514856 82..00+00442629 83..00-00002090 71....+00000080 32..10+00009899 110565+00000933 21.322+28446330 22.322+11019170 31..00+00010065 51..1.+0000+000 87..10+00002150 81..00+00514810 82..00+00442658 83..00-00002072 71....+00000080 32..10+00009936 110566+00000934 21.322+28466550 22.322+11025680 31..00+00010089 51..1.+0000+000 87..10+00002150 81..00+00514781 82..00+00442683 83..00-00002086 71....+00000080 32..10+00009959 110567+00000935 21.322+28632580 22.322+10929650 31..00+00009765 51..1.+0000+000 87..10+00002150 81..00+00515013 82..00+00443000 83..00-00001889 71....+00000080 32..10+00009661 110568+00000936 21.322+28604890 22.322+10912400 31..00+00009803 51..1.+0000+000 87..10+00002150 81..00+00514982 82..00+00442950 83..00-00001868 71....+00000080 32..10+00009702 110569+00000937 21.322+28709030 22.322+11036420 31..00+00009962 51..1.+0000+000 87..10+00002150 81..00+00514823 82..00+00443079 83..00-00002083 71....+00000080 32..10+00009830 110570+00000938 21.322+28819720 22.322+11019000 31..00+00009646 51..1.+0000+000 87..10+00002150 81..00+00515092 82..00+00443304 83..00-00002005 71....+00000080 32..10+00009523 110571+00000939 21.322+28864590 22.322+11198730 31..00+00010264 51..1.+0000+000 87..10+00002150 81..00+00514529 82..00+00443270 83..00-00002389 71....+00000080 32..10+00010083 110572+00000940 21.322+28972000 22.322+11175120 31..00+00010083 51..1.+0000+000 87..10+00002150 81..00+00514669 82..00+00443465 83..00-00002319 71....+00000080 32..10+00009911 110573+00000941 21.322+28898790 22.322+11183690 31..00+00010066 51..1.+0000+000 87..10+00002150 81..00+00514707 82..00+00443356 83..00-00002329 71....+00000080 32..10+00009892 110574+00000942 21.322+28922700 22.322+11173600 31..00+00009933 51..1.+0000+000 87..10+00002150 81..00+00514827 82..00+00443415 83..00-00002289 71....+00000080 32..10+00009764 110575+00000943 21.322+28959950 22.322+11200170 31..00+00010036 51..1.+0000+000 87..10+00002150 81..00+00514724 82..00+00443456 83..00-00002349 71....+00000080 32..10+00009859 110576+00000944 21.322+29044420 22.322+11203480 31..00+00009918 51..1.+0000+000 87..10+00002150 81..00+00514820 82..00+00443602 83..00-00002332 71....+00000080 32..10+00009742 110577+00000945 21.322+29013050 22.322+11149750 31..00+00009831 51..1.+0000+000 87..10+00002150 81..00+00514896 82..00+00443566 83..00-00002234 71....+00000080 32..10+00009672 110578+00000946 21.322+28089420 22.322+11233140 31..00+00010497 51..1.+0000+000 87..10+00002150 81..00+00514611 82..00+00442014 83..00-00002489 71....+00000080 32..10+00010301 110579+00000947 21.322+28127290 22.322+11261730 31..00+00010591 51..1.+0000+000 87..10+00002150 81..00+00514514 82..00+00442048 83..00-00002553 71....+00000080 32..10+00010384 110580+00000948 21.322+28233540 22.322+11283570 31..00+00010544 51..1.+0000+000 87..10+00002150 81..00+00514516 82..00+00442229 83..00-00002580 71....+00000080 32..10+00010331 110581+00000949 21.322+28323190 22.322+11262560 31..00+00010176 51..1.+0000+000 87..10+00002150 81..00+00514819 82..00+00442461 83..00-00002473 71....+00000080 32..10+00009977 110582+00000950 21.322+28246930 22.322+11175420 31..00+00010104 51..1.+0000+000 87..10+00002150 81..00+00514894 82..00+00442358 83..00-00002323 71....+00000080 32..10+00009932 110583+00000951 21.322+28315170 22.322+11226210 31..00+00010240 51..1.+0000+000 87..10+00002150 81..00+00514751 82..00+00442430 83..00-00002428 71....+00000080 32..10+00010051 110584+00000952 21.322+28434850 22.322+11202410 31..00+00010218 51..1.+0000+000 87..10+00002150 81..00+00514717 82..00+00442616 83..00-00002386 71....+00000080 32..10+00010036 110585+00000953 21.322+28573250 22.322+11182730 31..00+00010372 51..1.+0000+000 87..10+00002150 81..00+00514514 82..00+00442794 83..00-00002384 71....+00000080 32..10+00010193 110586+00000954 21.322+28482790 22.322+11155310 31..00+00010518 51..1.+0000+000 87..10+00002150 81..00+00514399 82..00+00442617 83..00-00002366 71....+00000080 32..10+00010345 110587+00000955 21.322+28352110 22.322+11231750 31..00+00010514 51..1.+0000+000 87..10+00002150 81..00+00514477 82..00+00442418 83..00-00002490 71....+00000080 32..10+00010318 110588+00000956 21.322+28577880 22.322+11169720 31..00+00010572 51..1.+0000+000 87..10+00002150 81..00+00514316 82..00+00442756 83..00-00002399 71....+00000080 32..10+00010394 110589+00000957 21.322+28310910 22.322+11297900 31..00+00010466 51..1.+0000+000 87..10+00002150 81..00+00514561 82..00+00442371 83..00-00002587 71....+00000080 32..10+00010249 110590+00000958 21.322+28233010 22.322+11277550 31..00+00010757 51..1.+0000+000 87..10+00002150 81..00+00514314 82..00+00442171 83..00-00002612 71....+00000080 32..10+00010541 110591+00000959 21.322+28341800 22.322+11300100 31..00+00011135 51..1.+0000+000 87..10+00002150 81..00+00513916 82..00+00442251 83..00-00002726 71....+00000080 32..10+00010904 110592+00000960 21.322+28480490 22.322+11330880 31..00+00011185 51..1.+0000+000 87..10+00002150 81..00+00513820 82..00+00442472 83..00-00002789 71....+00000080 32..10+00010942 110593+00000961 21.322+28596780 22.322+11242680 31..00+00010988 51..1.+0000+000 87..10+00002150 81..00+00513933 82..00+00442702 83..00-00002599 71....+00000080 32..10+00010779 110594+00000962 21.322+28458040 22.322+11067810 31..00+00010750 51..1.+0000+000 87..10+00002150 81..00+00514162 82..00+00442517 83..00-00002263 71....+00000080 32..10+00010600 110595+00000963 21.322+28696940 22.322+11197160 31..00+00010303 51..1.+0000+000 87..10+00002150 81..00+00514541 82..00+00443002 83..00-00002394 71....+00000080 32..10+00010122 110596+00000964 21.322+28697270 22.322+11198830 31..00+00010406 51..1.+0000+000 87..10+00002150 81..00+00514443 82..00+00442982 83..00-00002416 71....+00000080 32..10+00010222 110597+00000965 21.322+28759500 22.322+11217710 31..00+00010471 51..1.+0000+000 87..10+00002150 81..00+00514366 82..00+00443068 83..00-00002459 71....+00000080 32..10+00010280 110598+00000966 21.322+28783300 22.322+11222000 31..00+00010326 51..1.+0000+000 87..10+00002150 81..00+00514500 82..00+00443133 83..00-00002438 71....+00000080 32..10+00010137 110599+00000967 21.322+28579980 22.322+11178050 31..00+00010497 51..1.+0000+000 87..10+00002150 81..00+00514390 82..00+00442777 83..00-00002399 71....+00000080 32..10+00010318 110600+00000968 21.322+28688920 22.322+11192920 31..00+00010433 51..1.+0000+000 87..10+00002150 81..00+00514418 82..00+00442963 83..00-00002411 71....+00000080 32..10+00010250 110601+00000969 21.322+28744370 22.322+11208080 31..00+00010495 51..1.+0000+000 87..10+00002150 81..00+00514345 82..00+00443039 83..00-00002448 71....+00000080 32..10+00010307 110602+00000970 21.322+28677570 22.322+11173690 31..00+00010596 51..1.+0000+000 87..10+00002150 81..00+00514259 82..00+00442911 83..00-00002410 71....+00000080 32..10+00010416 110603+00000971 21.322+28754180 22.322+11163910 31..00+00010561 51..1.+0000+000 87..10+00002150 81..00+00514265 82..00+00443040 83..00-00002388 71....+00000080 32..10+00010385 110604+00000972 21.322+28800200 22.322+11189140 31..00+00010600 51..1.+0000+000 87..10+00002150 81..00+00514221 82..00+00443108 83..00-00002436 71....+00000080 32..10+00010415 110605+00000973 21.322+28752940 22.322+11176530 31..00+00010727 51..1.+0000+000 87..10+00002150 81..00+00514109 82..00+00443007 83..00-00002439 71....+00000080 32..10+00010544 110606+00000974 21.322+28709360 22.322+11168480 31..00+00010668 51..1.+0000+000 87..10+00002150 81..00+00514178 82..00+00442947 83..00-00002415 71....+00000080 32..10+00010489 110607+00000975 21.322+28923620 22.322+11179230 31..00+00010634 51..1.+0000+000 87..10+00002150 81..00+00514149 82..00+00443300 83..00-00002426 71....+00000080 32..10+00010452 110608+00000976 21.322+28850840 22.322+11190140 31..00+00010541 51..1.+0000+000 87..10+00002150 81..00+00514262 82..00+00443199 83..00-00002427 71....+00000080 32..10+00010358 110609+00000977 21.322+28900290 22.322+11220800 31..00+00010441 51..1.+0000+000 87..10+00002150 81..00+00514354 82..00+00443297 83..00-00002458 71....+00000080 32..10+00010250 110610+00000978 21.322+28916820 22.322+11125320 31..00+00010532 51..1.+0000+000 87..10+00002150 81..00+00514234 82..00+00443303 83..00-00002320 71....+00000080 32..10+00010368 110611+00000979 21.322+29064110 22.322+11210710 31..00+00010626 51..1.+0000+000 87..10+00002150 81..00+00514130 82..00+00443531 83..00-00002477 71....+00000080 32..10+00010434 110612+00000980 21.322+29293460 22.322+11157400 31..00+00010361 51..1.+0000+000 87..10+00002150 81..00+00514324 82..00+00443930 83..00-00002341 71....+00000080 32..10+00010190 110613+00000981 21.322+29225160 22.322+11203420 31..00+00010169 51..1.+0000+000 87..10+00002150 81..00+00514538 82..00+00443846 83..00-00002379 71....+00000080 32..10+00009988 110614+00000982 21.322+29071560 22.322+11228690 31..00+00010296 51..1.+0000+000 87..10+00002150 81..00+00514454 82..00+00443591 83..00-00002443 71....+00000080 32..10+00010105 110615+00000983 21.322+29008740 22.322+11209770 31..00+00010264 51..1.+0000+000 87..10+00002150 81..00+00514495 82..00+00443496 83..00-00002407 71....+00000080 32..10+00010079 110616+00000984 21.322+29065140 22.322+11133340 31..00+00010966 51..1.+0000+000 87..10+00002150 81..00+00513775 82..00+00443480 83..00-00002410 71....+00000080 32..10+00010793 110617+00000985 21.322+29265720 22.322+11108490 31..00+00010920 51..1.+0000+000 87..10+00002150 81..00+00513768 82..00+00443821 83..00-00002360 71....+00000080 32..10+00010755 110618+00000986 21.322+29191090 22.322+11178800 31..00+00010636 51..1.+0000+000 87..10+00002150 81..00+00514082 82..00+00443734 83..00-00002426 71....+00000080 32..10+00010454 110619+00000987 21.322+29052680 22.322+11172680 31..00+00010784 51..1.+0000+000 87..10+00002150 81..00+00513968 82..00+00443487 83..00-00002443 71....+00000080 32..10+00010601 110620+00000988 21.322+28591870 22.322+11166120 31..00+00010742 51..1.+0000+000 87..10+00002150 81..00+00514147 82..00+00442742 83..00-00002425 71....+00000080 32..10+00010562 110621+00000989 21.322+28675130 22.322+11161640 31..00+00010703 51..1.+0000+000 87..10+00002150 81..00+00514154 82..00+00442884 83..00-00002410 71....+00000080 32..10+00010525 110622+00000990 21.322+28749420 22.322+11185150 31..00+00010802 51..1.+0000+000 87..10+00002150 81..00+00514041 82..00+00442987 83..00-00002467 71....+00000080 32..10+00010615 110623+00000991 21.322+28604120 22.322+11085190 31..00+00010915 51..1.+0000+000 87..10+00002150 81..00+00513953 82..00+00442719 83..00-00002319 71....+00000080 32..10+00010756 110624+00001100 21.322+36729970 22.322+10615250 31..00+00013907 51..1.+0000+000 87..10+00001500 81..00+00517387 82..00+00457379 83..00-00001079 71....+000MKB12 32..10+00013842 110625+00001101 21.322+37135420 22.322+10656180 31..00+00013589 51..1.+0000+000 87..10+00001500 81..00+00518309 82..00+00457494 83..00-00001136 71....+000MKB13 32..10+00013517 110626+00001102 21.322+37132680 22.322+10656220 31..00+00013604 51..1.+0000+000 87..10+00001500 81..00+00518298 82..00+00457505 83..00-00001137 71....+000MKB13 32..10+00013532 110627+00001103 21.322+36595790 22.322+10682950 31..00+00013200 51..1.+0000+000 87..10+00001500 81..00+00517501 82..00+00456615 83..00-00001151 71....+000MKB14 32..10+00013124 110628+00001104 21.322+37020580 22.322+10699770 31..00+00012841 51..1.+0000+000 87..10+00001500 81..00+00518431 82..00+00456713 83..00-00001146 71....+000MKB15 32..10+00012763 110629+00001105 21.322+32031500 22.322+10245790 31..00+00027144 51..1.+0000+000 87..10+00001300 81..00+00498434 82..00+00453832 83..00-00000585 71....+00000070 32..10+00027124 110630+00001106 21.322+36304960 22.322+10689010 31..00+00014667 51..1.+0000+000 87..10+00001300 81..00+00516193 82..00+00457516 83..00-00001122 71....+00000035 32..10+00014581 110631+00001107 21.322+36248940 22.322+10834340 31..00+00013587 51..1.+0000+000 87..10+00001300 81..00+00516703 82..00+00456522 83..00-00001313 71....+00000035 32..10+00013470 110632+00001108 21.322+36244930 22.322+10852090 31..00+00012817 51..1.+0000+000 87..10+00001300 81..00+00517123 82..00+00455879 83..00-00001248 71....+00000035 32..10+00012703 110633+00001109 21.322+36081130 22.322+10941530 31..00+00012422 51..1.+0000+000 87..10+00001300 81..00+00517094 82..00+00455353 83..00-00001368 71....+00000035 32..10+00012286 110634+00001110 21.322+35943760 22.322+10792090 31..00+00011635 51..1.+0000+000 87..10+00001700 81..00+00517320 82..00+00454602 83..00-00001381 71....+00000035 32..10+00011545 110635+00001111 21.322+35706770 22.322+10770400 31..00+00011337 51..1.+0000+000 87..10+00001900 81..00+00517161 82..00+00454113 83..00-00001506 71....+00000035 32..10+00011254 110636+00001112 21.322+35984580 22.322+10642690 31..00+00010218 51..1.+0000+000 87..10+00001900 81..00+00518194 82..00+00453532 83..00-00001167 71....+00000035 32..10+00010166 110637+00001113 21.322+36342250 22.322+10580860 31..00+00008998 51..1.+0000+000 87..10+00001900 81..00+00519319 82..00+00452845 83..00-00000957 71....+00000035 32..10+00008961 110638+00001114 21.322+35346860 22.322+11184330 31..00+00007769 51..1.+0000+000 87..10+00001300 81..00+00519092 82..00+00451007 83..00-00000975 71....+00000035 32..10+00007635 110639+00001115 21.322+33843330 22.322+11101020 31..00+00006670 51..1.+0000+000 87..10+00001300 81..00+00518779 82..00+00449053 83..00-00000685 71....+00000035 32..10+00006571 110640+00001116 21.322+32282800 22.322+10996400 31..00+00006207 51..1.+0000+000 87..10+00001300 81..00+00518447 82..00+00447474 83..00-00000505 71....+00000035 32..10+00006131 110641+00001117 21.322+30968290 22.322+11112480 31..00+00006640 51..1.+0000+000 87..10+00001300 81..00+00517725 82..00+00446313 83..00-00000692 71....+00000035 32..10+00006539 110642+00001118 21.322+30482380 22.322+11257030 31..00+00007614 51..1.+0000+000 87..10+00001300 81..00+00516744 82..00+00445888 83..00-00001031 71....+00000035 32..10+00007466 110643+00001119 21.322+29219930 22.322+11113560 31..00+00008585 51..1.+0000+000 87..10+00001900 81..00+00515798 82..00+00444289 83..00-00001632 71....+00000035 32..10+00008454 110644+00001120 21.322+28655080 22.322+11141430 31..00+00009223 51..1.+0000+000 87..10+00001900 81..00+00515316 82..00+00443420 83..00-00001782 71....+00000035 32..10+00009075 110645+00001121 21.322+27371370 22.322+11500310 31..00+00010059 51..1.+0000+000 87..10+00001550 81..00+00515230 82..00+00441398 83..00-00002136 71....+00000035 32..10+00009780 110646+00001122 21.322+27691730 22.322+11473230 31..00+00013104 51..1.+0000+000 87..10+00001550 81..00+00512263 82..00+00440799 83..00-00002793 71....+00000035 32..10+00012755 110647+00001123 21.322+28397060 22.322+11308920 31..00+00012973 51..1.+0000+000 87..10+00001300 81..00+00511889 82..00+00442159 83..00-00002186 71....+00000035 32..10+00012700 110648+00001124 21.322+29000870 22.322+11102760 31..00+00012260 51..1.+0000+000 87..10+00001400 81..00+00512260 82..00+00443435 83..00-00001751 71....+00000035 32..10+00012077 110649+00001125 21.322+29978720 22.322+11105070 31..00+00011475 51..1.+0000+000 87..10+00001400 81..00+00512886 82..00+00445285 83..00-00001619 71....+00000035 32..10+00011303 110650+00001126 21.322+30745680 22.322+10801410 31..00+00010614 51..1.+0000+000 87..10+00001850 81..00+00513731 82..00+00446553 83..00-00001420 71....+00000035 32..10+00010530 110651+00001127 21.322+32152390 22.322+10837970 31..00+00009861 51..1.+0000+000 87..10+00001850 81..00+00514966 82..00+00448565 83..00-00001382 71....+00000035 32..10+00009776 110652+00001128 21.322+32793050 22.322+10926570 31..00+00009069 51..1.+0000+000 87..10+00001850 81..00+00516065 82..00+00449134 83..00-00001403 71....+00000035 32..10+00008973 110653+00001129 21.322+33257480 22.322+11328300 31..00+00009016 51..1.+0000+000 87..10+00001300 81..00+00516498 82..00+00449641 83..00-00001405 71....+00000035 32..10+00008820 110654+00001130 21.322+33618020 22.322+11178880 31..00+00010214 51..1.+0000+000 87..10+00001300 81..00+00515727 82..00+00450726 83..00-00001418 71....+00000035 32..10+00010040 110655+00001131 21.322+34184540 22.322+10988290 31..00+00011060 51..1.+0000+000 87..10+00001300 81..00+00515538 82..00+00451999 83..00-00001248 71....+00000035 32..10+00010927 110656+00001132 21.322+34689150 22.322+10879870 31..00+00011496 51..1.+0000+000 87..10+00001300 81..00+00515754 82..00+00452971 83..00-00001121 71....+00000035 32..10+00011386 110657+00001133 21.322+35201770 22.322+11088120 31..00+00012063 51..1.+0000+000 87..10+00001300 81..00+00516054 82..00+00453990 83..00-00001589 71....+00000035 32..10+00011887 110658+00001134 21.322+35394450 22.322+10940290 31..00+00012816 51..1.+0000+000 87..10+00001300 81..00+00515798 82..00+00454824 83..00-00001424 71....+00000035 32..10+00012676 110659+00001135 21.322+35368920 22.322+10900400 31..00+00013591 51..1.+0000+000 87..10+00001300 81..00+00515241 82..00+00455372 83..00-00001453 71....+00000035 32..10+00013456 110660+00001136 21.322+35210700 22.322+10658260 31..00+00014693 51..1.+0000+000 87..10+00001530 81..00+00514202 82..00+00455993 83..00-00001284 71....+00000035 32..10+00014615 110661+00001137 21.322+35125750 22.322+10630300 31..00+00015895 51..1.+0000+000 87..10+00001450 81..00+00513227 82..00+00456726 83..00-00001259 71....+00000035 32..10+00015818 110662+00001138 21.322+34762140 22.322+10500100 31..00+00017375 51..1.+0000+000 87..10+00001450 81..00+00511492 82..00+00457104 83..00-00001051 71....+00000035 32..10+00017321 110663+00001139 21.322+35352730 22.322+10853570 31..00+00014206 51..1.+0000+000 87..10+00001300 81..00+00514800 82..00+00455814 83..00-00001437 71....+00000035 32..10+00014079 110664+00001140 21.322+35441570 22.322+11049770 31..00+00013369 51..1.+0000+000 87..10+00001300 81..00+00515532 82..00+00455272 83..00-00001732 71....+00000035 32..10+00013188 110665+00001141 21.322+35448230 22.322+11122170 31..00+00012610 51..1.+0000+000 87..10+00001300 81..00+00516049 82..00+00454697 83..00-00001749 71....+00000035 32..10+00012415 110666+00001142 21.322+35260230 22.322+11215850 31..00+00011910 51..1.+0000+000 87..10+00001300 81..00+00516265 82..00+00453922 83..00-00001798 71....+00000035 32..10+00011694 110667+00001143 21.322+35074980 22.322+11359690 31..00+00011629 51..1.+0000+000 87..10+00001300 81..00+00516248 82..00+00453452 83..00-00002002 71....+00000035 32..10+00011364 110668+00001144 21.322+34698530 22.322+11385340 31..00+00011336 51..1.+0000+000 87..10+00001300 81..00+00516000 82..00+00452770 83..00-00001985 71....+00000035 32..10+00011069 110669+00001145 21.322+34280730 22.322+11448410 31..00+00010712 51..1.+0000+000 87..10+00001300 81..00+00516024 82..00+00451823 83..00-00001954 71....+00000035 32..10+00010436 110670+00001146 21.322+33880380 22.322+11334230 31..00+00010621 51..1.+0000+000 87..10+00001300 81..00+00515671 82..00+00451270 83..00-00001747 71....+00000035 32..10+00010389 110671+00001147 21.322+33636650 22.322+11538900 31..00+00010126 51..1.+0000+000 87..10+00001300 81..00+00515918 82..00+00450638 83..00-00001962 71....+00000035 32..10+00009832 110672+00001148 21.322+33636740 22.322+11538900 31..00+00010143 51..1.+0000+000 87..10+00001300 81..00+00515904 82..00+00450647 83..00-00001966 71....+00000035 32..10+00009848 110673+00001149 21.322+33499570 22.322+11479940 31..00+00009225 51..1.+0000+000 87..10+00001700 81..00+00516534 82..00+00450013 83..00-00002063 71....+00000035 32..10+00008977 110674+00001150 21.322+32796290 22.322+11541040 31..00+00008740 51..1.+0000+000 87..10+00001700 81..00+00516509 82..00+00448931 83..00-00002033 71....+00000035 32..10+00008485 110675+00001151 21.322+31993800 22.322+11417700 31..00+00009208 51..1.+0000+000 87..10+00001700 81..00+00515645 82..00+00448089 83..00-00001971 71....+00000035 32..10+00008980 110676+00001152 21.322+30488560 22.322+11101860 31..00+00010132 51..1.+0000+000 87..10+00002150 81..00+00514237 82..00+00446088 83..00-00002132 71....+00000035 32..10+00009981 110677+00001153 21.322+29672910 22.322+11050060 31..00+00010800 51..1.+0000+000 87..10+00002150 81..00+00513550 82..00+00444776 83..00-00002161 71....+00000035 32..10+00010653 110678+00001154 21.322+28989290 22.322+11116170 31..00+00011342 51..1.+0000+000 87..10+00002150 81..00+00513160 82..00+00443557 83..00-00002366 71....+00000035 32..10+00011169 110679+00001155 21.322+28564300 22.322+11101240 31..00+00012055 51..1.+0000+000 87..10+00002150 81..00+00512614 82..00+00442667 83..00-00002462 71....+00000035 32..10+00011875 110680+00001156 21.322+28095110 22.322+11281100 31..00+00012692 51..1.+0000+000 87..10+00002150 81..00+00512305 82..00+00441657 83..00-00002924 71....+00000035 32..10+00012436 110681+00001157 21.322+28106680 22.322+11281030 31..00+00012681 51..1.+0000+000 87..10+00002150 81..00+00512309 82..00+00441681 83..00-00002922 71....+00000035 32..10+00012425 110682+00001158 21.322+27529000 22.322+11483730 31..00+00011303 51..1.+0000+000 87..10+00002000 81..00+00514009 82..00+00441160 83..00-00002848 71....+00000035 32..10+00010998 110683+00001159 21.322+28857550 22.322+11362060 31..00+00009672 51..1.+0000+000 87..10+00002000 81..00+00514889 82..00+00443636 83..00-00002291 71....+00000035 32..10+00009451 110684+00001160 21.322+29995180 22.322+11253800 31..00+00008324 51..1.+0000+000 87..10+00002150 81..00+00516025 82..00+00445316 83..00-00002016 71....+00000035 32..10+00008163 110685+00001161 21.322+31041640 22.322+11366460 31..00+00007848 51..1.+0000+000 87..10+00002150 81..00+00516623 82..00+00446572 83..00-00002059 71....+00000035 32..10+00007668 110686+00001162 21.322+32605100 22.322+11170610 31..00+00007047 51..1.+0000+000 87..10+00002150 81..00+00517832 82..00+00448079 83..00-00001676 71....+00000035 32..10+00006928 110687+00001163 21.322+33874370 22.322+11149760 31..00+00007574 51..1.+0000+000 87..10+00002150 81..00+00518076 82..00+00449582 83..00-00001748 71....+00000035 32..10+00007450 110688+00001164 21.322+35152440 22.322+11279350 31..00+00009151 51..1.+0000+000 87..10+00001850 81..00+00518002 82..00+00451813 83..00-00001914 71....+00000035 32..10+00008967 110689+00001165 21.322+35481470 22.322+11464170 31..00+00010141 51..1.+0000+000 87..10+00001350 81..00+00517754 82..00+00452812 83..00-00001899 71....+00000035 32..10+00009874 110690+00001166 21.322+35508090 22.322+11332290 31..00+00011170 51..1.+0000+000 87..10+00001350 81..00+00517103 82..00+00453640 83..00-00001908 71....+00000035 32..10+00010927 110691+00001167 21.322+35600180 22.322+11170070 31..00+00011769 51..1.+0000+000 87..10+00001350 81..00+00516813 82..00+00454238 83..00-00001738 71....+00000035 32..10+00011571 110692+00001168 21.322+35885110 22.322+11123600 31..00+00012381 51..1.+0000+000 87..10+00001350 81..00+00516847 82..00+00455053 83..00-00001761 71....+00000035 32..10+00012189 110693+00001169 21.322+35898320 22.322+11023870 31..00+00013243 51..1.+0000+000 87..10+00001350 81..00+00516337 82..00+00455774 83..00-00001708 71....+00000035 32..10+00013072 110694+00001170 21.322+35707960 22.322+10995530 31..00+00013823 51..1.+0000+000 87..10+00001350 81..00+00515665 82..00+00455990 83..00-00001740 71....+00000035 32..10+00013654 110695+00001171 21.322+35563210 22.322+10847760 31..00+00014164 51..1.+0000+000 87..10+00001350 81..00+00515178 82..00+00456088 83..00-00001468 71....+00000035 32..10+00014039 110696+00001172 21.322+34306800 22.322+11254810 31..00+00010236 51..1.+0000+000 87..10+00001300 81..00+00516362 82..00+00451607 83..00-00001542 71....+00000055 32..10+00010037 110697+00001173 21.322+34453250 22.322+11255750 31..00+00010245 51..1.+0000+000 87..10+00001300 81..00+00516502 82..00+00451791 83..00-00001545 71....+00000055 32..10+00010046 110698+00001174 21.322+34280570 22.322+11222230 31..00+00010875 51..1.+0000+000 87..10+00001300 81..00+00515837 82..00+00451972 83..00-00001613 71....+00000055 32..10+00010675 110699+00001175 21.322+34446340 22.322+11165980 31..00+00011171 51..1.+0000+000 87..10+00001300 81..00+00515776 82..00+00452386 83..00-00001572 71....+00000055 32..10+00010984 totalopenstation-0.5.3/sample_data/leica_tcr_1205000066400000000000000000007115351477035261600217460ustar00rootroot00000000000000 System 1200 Data Export - File Begin ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Job --- Date/Time: : 02.07.08, 13:54:41 Job : OSN020708 Creator : MEL Instrument Type : TCRP1205 Serial No. : 211793 Points ------ Point ID E N H Class Point Code OA6 450398.831 205884.254 56.973 REF TPS Station ----------- Station ID E N H hi OA6 450398.831 205884.254 56.973 1.643 OA15 450400.633 205881.967 57.057 1.657 TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm OA9 73.0632 90.2450 3.513 3.513 1.632 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code OA15 450400.633 205881.967 57.057 CTRL STN OA9 450404.004 205882.991 58.677 CTRL STN TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 10000 73.0632 90.2448 3.513 3.513 1.632 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 10000 450403.994 205882.988 58.689 MEAS BS Lines ----- Point ID E N H Class Point Code Line ID Line Code 10001 450402.042 205885.618 61.309 MEAS Line0001 RT 10002 450402.600 205884.880 61.283 MEAS Line0001 RT 10003 450403.538 205883.636 61.289 MEAS Line0001 RT 10004 450403.613 205883.542 61.293 MEAS Line0001 RT 10005 450403.598 205883.534 61.311 MEAS Line0001 RT 10006 450403.738 205883.360 61.318 MEAS Line0001 RT 10007 450403.754 205883.347 61.301 MEAS Line0001 RT 10008 450403.961 205883.050 61.307 MEAS Line0001 RT 10009 450404.047 205882.944 61.299 MEAS Line0001 RT 10010 450404.043 205882.902 61.378 MEAS Line0001 RT 10011 450404.040 205882.901 61.412 MEAS Line0001 RT 10012 450403.195 205884.059 61.394 MEAS Line0001 RT 10013 450403.190 205884.068 61.379 MEAS Line0001 RT 10014 450403.184 205884.077 61.370 MEAS Line0001 RT 10015 450403.173 205884.093 61.358 MEAS Line0001 RT 10016 450403.164 205884.107 61.354 MEAS Line0001 RT 10017 450403.156 205884.117 61.354 MEAS Line0001 RT 10018 450403.141 205884.138 61.356 MEAS Line0001 RT 10019 450403.116 205884.169 61.352 MEAS Line0001 RT 10020 450403.090 205884.201 61.370 MEAS Line0001 RT 10021 450403.076 205884.218 61.381 MEAS Line0001 RT 10022 450402.456 205885.044 61.396 MEAS Line0001 RT 10023 450402.038 205885.604 61.430 MEAS Line0001 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 10001 21.0602 56.2659 4.696 3.914 4.252 0.000 0.0344 0/ 0 10002 34.0146 53.5028 4.354 3.515 4.226 0.000 0.0344 0/ 0 10003 60.0705 52.2742 4.226 3.351 4.232 0.000 0.0344 0/ 0 10004 62.0823 52.3440 4.245 3.371 4.236 0.000 0.0344 0/ 0 10005 62.0822 52.1502 4.241 3.354 4.254 0.000 0.0344 0/ 0 10006 65.5043 52.3446 4.285 3.403 4.261 0.000 0.0344 0/ 0 10007 66.0856 52.4958 4.282 3.412 4.244 0.000 0.0344 0/ 0 10008 71.5839 53.2808 4.356 3.500 4.250 0.000 0.0344 0/ 0 10009 74.0215 53.5706 4.392 3.551 4.242 0.000 0.0344 0/ 0 10010 74.3952 53.0010 4.427 3.536 4.321 0.000 0.0344 0/ 0 10011 74.3951 52.3801 4.445 3.533 4.355 0.000 0.0344 0/ 0 10012 50.4611 50.5859 4.257 3.307 4.337 0.000 0.0344 0/ 0 10013 50.3529 51.0904 4.249 3.309 4.322 0.000 0.0344 0/ 0 10014 50.2337 51.1524 4.244 3.311 4.313 0.000 0.0344 0/ 0 10015 50.0442 51.2431 4.238 3.313 4.301 0.000 0.0344 0/ 0 10016 49.4649 51.2744 4.237 3.314 4.297 0.000 0.0344 0/ 0 10017 49.3347 51.2743 4.238 3.315 4.297 0.000 0.0344 0/ 0 10018 49.0654 51.2749 4.240 3.317 4.299 0.000 0.0344 0/ 0 10019 48.2629 51.3051 4.240 3.319 4.295 0.000 0.0344 0/ 0 10020 47.4257 51.2044 4.252 3.321 4.313 0.000 0.0344 0/ 0 10021 47.2100 51.1439 4.260 3.322 4.324 0.000 0.0344 0/ 0 10022 30.3822 53.0747 4.471 3.576 4.339 0.000 0.0344 0/ 0 10023 21.0724 55.0818 4.752 3.899 4.373 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1100 450402.127 205885.434 61.327 MEAS Line0002 RT 1101 450402.128 205885.423 61.416 MEAS Line0002 RT 1102 450402.138 205885.414 61.413 MEAS Line0002 RT 1103 450402.140 205885.417 61.325 MEAS Line0002 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1100 23.1832 55.1850 4.591 3.776 4.270 0.000 0.0344 0/ 0 1101 23.2344 54.2013 4.635 3.766 4.359 0.000 0.0344 0/ 0 1102 23.3542 54.2018 4.629 3.761 4.356 0.000 0.0344 0/ 0 1103 23.3536 55.1533 4.581 3.764 4.268 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1104 450402.131 205885.421 61.331 MEAS Line0003 DE 1104 450402.131 205885.421 61.331 MEAS Line0003 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1104 23.2636 55.1203 4.585 3.765 4.274 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1105 450402.131 205885.422 61.358 MEAS Line0004 DE 1105 450402.131 205885.422 61.358 MEAS Line0004 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1105 23.2612 54.5539 4.601 3.766 4.301 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1106 450402.502 205884.945 61.313 MEAS Line0005 RT 1107 450402.483 205884.939 61.422 MEAS Line0005 RT 1108 450402.495 205884.929 61.421 MEAS Line0005 RT 1109 450402.505 205884.930 61.315 MEAS Line0005 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1106 32.0648 53.3153 4.372 3.516 4.256 0.000 0.0344 0/ 0 1107 31.5400 52.1616 4.426 3.501 4.365 0.000 0.0344 0/ 0 1108 32.0851 52.1619 4.424 3.499 4.364 0.000 0.0344 0/ 0 1109 32.1707 53.2509 4.365 3.505 4.258 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1110 450401.859 205885.738 61.947 MEAS Line0006 RT 1111 450401.598 205885.527 62.430 MEAS Line0006 RT 1112 450401.642 205885.338 62.547 MEAS Line0006 RT 1113 450401.993 205885.606 61.928 MEAS Line0006 RT 1114 450402.141 205885.708 61.653 MEAS Line0006 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1110 18.0047 50.4847 5.116 3.965 4.890 0.000 0.0344 0/ 0 1111 15.0933 44.4658 5.236 3.688 5.373 0.000 0.0344 0/ 0 1112 16.3942 42.3306 5.203 3.519 5.490 0.000 0.0344 0/ 0 1113 20.2938 50.2402 5.042 3.885 4.871 0.000 0.0344 0/ 0 1114 21.5727 53.5517 4.991 4.034 4.596 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1115 450402.392 205885.637 61.679 MEAS Line0007 RT 1116 450402.036 205885.356 62.304 MEAS Line0007 RT 1117 450401.762 205885.143 62.790 MEAS Line0007 RT 1118 450401.547 205884.981 63.166 MEAS Line0007 RT 1119 450401.631 205884.867 63.161 MEAS Line0007 RT 1120 450402.193 205885.317 62.164 MEAS Line0007 RT 1121 450402.474 205885.534 61.671 MEAS Line0007 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1115 25.3620 53.5509 5.035 4.070 4.622 0.000 0.0344 0/ 0 1116 22.2914 45.3655 5.133 3.668 5.247 0.000 0.0344 0/ 0 1117 19.3338 39.3520 5.290 3.371 5.733 0.000 0.0344 0/ 0 1118 16.5148 35.1643 5.453 3.149 6.109 0.000 0.0344 0/ 0 1119 18.5944 34.3536 5.401 3.067 6.104 0.000 0.0344 0/ 0 1120 24.5750 46.5812 5.055 3.695 5.107 0.000 0.0344 0/ 0 1121 27.1809 53.3719 4.986 4.015 4.614 0.000 0.0344 0/ 0 1122 24.3437 49.2144 5.055 3.836 4.949 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 1122 450402.228 205885.455 62.006 MEAS TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1123 23.5148 47.1844 5.083 3.736 5.103 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 1123 450402.145 205885.384 62.160 MEAS TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1124 24.2619 47.1519 5.068 3.722 5.097 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 1124 450402.173 205885.356 62.154 MEAS TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1125 25.0517 49.1858 5.040 3.822 4.942 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 1125 450402.253 205885.428 61.999 MEAS Lines ----- Point ID E N H Class Point Code Line ID Line Code 1126 450402.245 205885.453 62.036 MEAS Line0008 RT 1127 450402.197 205885.419 62.184 MEAS Line0008 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1126 24.4912 49.0818 5.078 3.840 4.979 0.000 0.0344 0/ 0 1127 24.2225 47.3114 5.138 3.790 5.127 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1128 450402.387 205885.170 61.439 MEAS Line0009 RT 1129 450402.356 205885.145 62.134 MEAS Line0009 RT 1130 450402.435 205885.033 62.131 MEAS Line0009 RT 1131 450402.465 205885.073 61.443 MEAS Line0009 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1128 28.4246 53.1604 4.556 3.652 4.382 0.000 0.0344 0/ 0 1129 28.2752 46.3519 4.976 3.615 5.077 0.000 0.0344 0/ 0 1130 30.2637 46.0860 4.932 3.557 5.074 0.000 0.0344 0/ 0 1131 30.3202 52.5307 4.522 3.606 4.386 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1132 450402.682 205885.229 61.729 MEAS Line0010 RT 1133 450402.376 205884.993 62.237 MEAS Line0010 RT 1134 450401.932 205884.634 63.031 MEAS Line0010 RT 1135 450401.885 205884.757 62.981 MEAS Line0010 RT 1136 450402.351 205885.148 62.144 MEAS Line0010 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1132 32.0816 51.5648 4.892 3.852 4.672 0.000 0.0344 0/ 0 1133 29.5616 44.4503 4.960 3.492 5.180 0.000 0.0344 0/ 0 1134 25.5831 34.2932 5.238 2.966 5.974 0.000 0.0344 0/ 0 1135 24.1034 35.3742 5.250 3.058 5.924 0.000 0.0344 0/ 0 1136 28.2205 46.3028 4.983 3.615 5.087 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1137 450402.616 205884.868 61.431 MEAS Line0011 RT 1138 450402.604 205884.850 62.127 MEAS Line0011 RT 1139 450402.679 205884.746 62.125 MEAS Line0011 RT 1140 450402.676 205884.752 61.401 MEAS Line0011 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1137 34.2117 52.1702 4.442 3.514 4.374 0.000 0.0344 0/ 0 1138 34.2120 45.3922 4.884 3.493 5.070 0.000 0.0344 0/ 0 1139 36.2203 45.2004 4.852 3.451 5.068 0.000 0.0344 0/ 0 1140 36.1553 52.0704 4.376 3.454 4.344 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1141 450402.929 205884.981 61.689 MEAS Line0012 RT 1142 450402.608 205884.688 62.266 MEAS Line0012 RT 1143 450402.073 205884.272 63.141 MEAS Line0012 RT 1144 450402.022 205884.405 63.123 MEAS Line0012 RT 1145 450402.594 205884.860 62.145 MEAS Line0012 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1141 37.1759 51.5132 4.817 3.788 4.632 0.000 0.0344 0/ 0 1142 35.5811 43.2518 4.891 3.362 5.209 0.000 0.0344 0/ 0 1143 31.5942 31.3316 5.195 2.718 6.084 0.000 0.0344 0/ 0 1144 29.3946 32.2842 5.226 2.806 6.066 0.000 0.0344 0/ 0 1145 34.0751 45.3141 4.898 3.495 5.088 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1146 450402.827 205884.583 61.427 MEAS Line0013 RT 1147 450402.808 205884.559 62.129 MEAS Line0013 RT 1148 450402.872 205884.467 62.119 MEAS Line0013 RT 1149 450402.896 205884.502 61.422 MEAS Line0013 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1146 39.5937 51.3150 4.361 3.414 4.370 0.000 0.0344 0/ 0 1147 39.5944 44.4420 4.807 3.384 5.072 0.000 0.0344 0/ 0 1148 41.5040 44.3459 4.781 3.356 5.062 0.000 0.0344 0/ 0 1149 41.4540 51.2659 4.345 3.398 4.365 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1150 450403.154 205884.661 61.672 MEAS Line0014 RT 1151 450402.816 205884.407 62.241 MEAS Line0014 RT 1152 450402.314 205884.003 63.179 MEAS Line0014 RT 1153 450402.214 205884.104 63.150 MEAS Line0014 RT 1154 450402.796 205884.566 62.138 MEAS Line0014 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1150 43.0558 51.1645 4.728 3.689 4.615 0.000 0.0344 0/ 0 1151 41.4910 42.5233 4.812 3.274 5.184 0.000 0.0344 0/ 0 1152 39.3229 30.3534 5.187 2.640 6.122 0.000 0.0344 0/ 0 1153 36.2958 30.5555 5.171 2.658 6.093 0.000 0.0344 0/ 0 1154 39.4547 44.3824 4.813 3.382 5.081 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1155 450403.255 205884.475 61.639 MEAS Line0015 RT 1156 450402.429 205883.811 63.140 MEAS Line0015 RT 1157 450402.501 205883.695 63.107 MEAS Line0015 RT 1158 450403.333 205884.372 61.618 MEAS Line0015 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1155 46.1546 51.0721 4.661 3.628 4.582 0.000 0.0344 0/ 0 1156 44.1437 30.1060 5.120 2.574 6.083 0.000 0.0344 0/ 0 1157 47.1317 30.0451 5.077 2.545 6.050 0.000 0.0344 0/ 0 1158 48.1818 51.1404 4.638 3.616 4.561 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1159 450403.088 205884.281 61.974 MEAS Line0016 RT 1160 450403.030 205884.230 62.097 MEAS Line0016 RT 1161 450403.040 205884.196 62.080 MEAS Line0016 RT 1162 450403.107 205884.242 61.975 MEAS Line0016 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1159 46.4145 45.5841 4.692 3.374 4.917 0.000 0.0344 0/ 0 1160 46.3839 44.1543 4.723 3.297 5.040 0.000 0.0344 0/ 0 1161 47.1157 44.1541 4.701 3.281 5.023 0.000 0.0344 0/ 0 1162 47.2403 45.5219 4.683 3.362 4.918 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1163 450403.108 205884.273 62.007 MEAS Line0017 RT 1164 450403.051 205884.222 62.082 MEAS Line0017 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1163 47.0122 45.4555 4.721 3.383 4.950 0.000 0.0344 0/ 0 1164 47.0025 44.2813 4.719 3.306 5.025 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1165 450403.452 205884.153 61.644 MEAS Line0018 RT 1166 450402.635 205883.531 63.132 MEAS Line0018 RT 1167 450402.706 205883.429 63.125 MEAS Line0018 RT 1168 450403.475 205884.010 61.576 MEAS Line0018 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1165 52.1213 50.3543 4.616 3.567 4.587 0.000 0.0344 0/ 0 1166 51.5948 29.5404 5.097 2.541 6.075 0.000 0.0344 0/ 0 1167 54.4753 29.5358 5.089 2.537 6.068 0.000 0.0344 0/ 0 1168 54.1726 50.4315 4.521 3.500 4.519 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1169 450403.315 205883.985 61.960 MEAS Line0019 RT 1170 450403.231 205883.922 62.099 MEAS Line0019 RT 1171 450403.252 205883.894 62.100 MEAS Line0019 RT 1172 450403.344 205883.953 61.956 MEAS Line0019 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1169 53.0208 45.5752 4.669 3.357 4.903 0.000 0.0344 0/ 0 1170 53.0204 43.5031 4.693 3.251 5.042 0.000 0.0344 0/ 0 1171 53.3943 43.5036 4.694 3.252 5.043 0.000 0.0344 0/ 0 1172 53.4647 46.0131 4.669 3.360 4.899 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1173 450403.325 205883.977 61.971 MEAS Line0020 RT 1174 450403.283 205883.948 62.137 MEAS Line0020 RT 1175 450403.287 205883.928 62.128 MEAS Line0020 RT 1176 450403.336 205883.965 61.976 MEAS Line0020 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1173 53.1504 45.5256 4.679 3.359 4.914 0.000 0.0344 0/ 0 1174 53.1244 44.0141 4.760 3.308 5.080 0.000 0.0344 0/ 0 1175 53.3202 44.0143 4.748 3.300 5.071 0.000 0.0344 0/ 0 1176 53.3160 45.5140 4.683 3.361 4.919 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1177 450403.687 205883.885 61.659 MEAS Line0021 RT 1178 450402.845 205883.263 63.116 MEAS Line0021 RT 1179 450402.942 205883.170 63.074 MEAS Line0021 RT 1180 450403.753 205883.776 61.655 MEAS Line0021 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1177 57.5155 50.4558 4.656 3.606 4.602 0.000 0.0344 0/ 0 1178 59.3752 30.1245 5.094 2.563 6.059 0.000 0.0344 0/ 0 1179 62.2926 30.5028 5.078 2.603 6.017 0.000 0.0344 0/ 0 1180 59.5358 50.4826 4.654 3.607 4.598 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1181 450403.525 205883.704 61.971 MEAS Line0022 RT 1182 450403.445 205883.640 62.111 MEAS Line0022 RT 1183 450403.462 205883.612 62.111 MEAS Line0022 RT 1184 450403.542 205883.671 61.978 MEAS Line0022 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1181 59.0102 46.0032 4.689 3.373 4.914 0.000 0.0344 0/ 0 1182 59.1432 43.5546 4.716 3.272 5.054 0.000 0.0344 0/ 0 1183 59.5002 43.5543 4.717 3.273 5.054 0.000 0.0344 0/ 0 1184 59.3826 45.5517 4.692 3.371 4.921 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1185 450403.528 205883.692 61.989 MEAS Line0023 RT 1186 450403.489 205883.661 62.135 MEAS Line0023 RT 1187 450403.486 205883.636 62.120 MEAS Line0023 RT 1188 450403.540 205883.675 61.993 MEAS Line0023 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1185 59.1220 45.4919 4.699 3.370 4.932 0.000 0.0344 0/ 0 1186 59.1952 44.0843 4.767 3.320 5.078 0.000 0.0344 0/ 0 1187 59.3960 44.0844 4.746 3.305 5.063 0.000 0.0344 0/ 0 1188 59.3357 45.4742 4.704 3.372 4.936 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1189 450403.906 205883.587 61.655 MEAS Line0024 RT 1190 450403.167 205883.016 62.965 MEAS Line0024 RT 1191 450403.275 205882.931 62.901 MEAS Line0024 RT 1192 450403.984 205883.494 61.671 MEAS Line0024 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1189 63.4013 51.0913 4.689 3.652 4.598 0.000 0.0344 0/ 0 1190 67.3034 32.4942 5.058 2.742 5.908 0.000 0.0344 0/ 0 1191 69.5709 33.5332 5.044 2.813 5.844 0.000 0.0344 0/ 0 1192 65.2949 51.1409 4.723 3.683 4.614 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1193 450403.751 205883.394 61.986 MEAS Line0025 RT 1194 450403.675 205883.344 62.111 MEAS Line0025 RT 1195 450403.688 205883.321 62.113 MEAS Line0025 RT 1196 450403.774 205883.370 61.987 MEAS Line0025 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1193 65.2400 46.2036 4.739 3.429 4.929 0.000 0.0344 0/ 0 1194 65.3854 44.3026 4.763 3.339 5.054 0.000 0.0344 0/ 0 1195 66.0605 44.3048 4.767 3.342 5.056 0.000 0.0344 0/ 0 1196 65.5549 46.2538 4.748 3.440 4.930 0.000 0.0344 0/ 0 1197 65.2847 46.1425 4.763 3.440 4.951 0.000 0.0344 0/ 0 Points ------ Point ID E N H Class Point Code 1197 450403.763 205883.395 62.008 MEAS Lines ----- Point ID E N H Class Point Code Line ID Line Code 1198 450403.763 205883.395 62.008 MEAS Line0026 RT 1199 450403.733 205883.363 62.152 MEAS Line0026 RT 1200 450403.731 205883.349 62.144 MEAS Line0026 RT 1201 450403.765 205883.377 61.996 MEAS Line0026 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1198 65.2846 46.1423 4.763 3.440 4.951 0.000 0.0344 0/ 0 1199 65.4526 44.4045 4.835 3.400 5.095 0.000 0.0344 0/ 0 1200 65.5729 44.4045 4.824 3.392 5.087 0.000 0.0344 0/ 0 1201 65.4608 46.1826 4.750 3.435 4.939 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1202 450404.149 205883.290 61.686 MEAS Line0027 RT 1203 450403.471 205882.807 62.790 MEAS Line0027 RT 1204 450403.591 205882.732 62.716 MEAS Line0027 RT 1205 450404.188 205883.187 61.669 MEAS Line0027 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1202 69.2255 51.3843 4.790 3.756 4.629 0.000 0.0344 0/ 0 1203 73.3102 35.5921 5.037 2.960 5.733 0.000 0.0344 0/ 0 1204 75.3019 37.2136 5.035 3.056 5.659 0.000 0.0344 0/ 0 1205 71.0317 51.4922 4.781 3.758 4.612 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1206 450403.977 205883.115 61.969 MEAS Line0028 RT 1207 450403.883 205883.079 62.102 MEAS Line0028 RT 1208 450403.916 205883.031 62.118 MEAS Line0028 RT 1209 450403.995 205883.086 61.978 MEAS Line0028 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1206 71.0320 47.2140 4.805 3.535 4.912 0.000 0.0344 0/ 0 1207 71.0712 45.2328 4.825 3.435 5.045 0.000 0.0344 0/ 0 1208 72.0253 45.2329 4.847 3.451 5.061 0.000 0.0344 0/ 0 1209 71.3551 47.2102 4.818 3.543 4.921 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1210 450403.938 205883.080 61.970 MEAS Line0029 RT 1211 450403.909 205883.075 62.094 MEAS Line0029 RT 1212 450403.945 205883.077 62.128 MEAS Line0029 RT 1213 450403.940 205883.070 61.970 MEAS Line0029 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1210 71.2344 46.5758 4.771 3.487 4.913 0.000 0.0344 0/ 0 1211 71.1906 45.3924 4.836 3.458 5.037 0.000 0.0344 0/ 0 1212 71.2837 45.3922 4.885 3.493 5.071 0.000 0.0344 0/ 0 1213 71.3331 46.5705 4.770 3.486 4.913 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1214 450401.313 205885.103 61.790 MEAS Line0030 RT 1215 450401.341 205885.056 61.883 MEAS Line0030 RT 1216 450401.404 205884.958 62.106 MEAS Line0030 RT 1217 450401.480 205884.859 62.282 MEAS Line0030 RT 1218 450401.518 205884.805 62.381 MEAS Line0030 RT 1219 450401.555 205884.759 62.470 MEAS Line0030 RT 1220 450401.617 205884.673 62.587 MEAS Line0030 RT 1221 450401.678 205884.591 62.683 MEAS Line0030 RT 1222 450401.748 205884.509 62.782 MEAS Line0030 RT 1223 450401.810 205884.396 62.899 MEAS Line0030 RT 1224 450401.864 205884.314 62.983 MEAS Line0030 RT 1225 450401.980 205884.157 63.111 MEAS Line0030 RT 1226 450401.804 205884.404 63.141 MEAS Line0030 RT 1227 450401.694 205884.558 62.966 MEAS Line0030 RT 1228 450401.627 205884.651 62.867 MEAS Line0030 RT 1229 450401.562 205884.740 62.762 MEAS Line0030 RT 1230 450401.504 205884.825 62.634 MEAS Line0030 RT 1231 450401.469 205884.873 62.540 MEAS Line0030 RT 1232 450401.417 205884.947 62.401 MEAS Line0030 RT 1233 450401.361 205885.027 62.304 MEAS Line0030 RT 1234 450401.341 205885.048 62.262 MEAS Line0030 RT 1235 450401.309 205885.091 62.193 MEAS Line0030 RT 1236 450401.308 205885.100 62.035 MEAS Line0030 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1214 12.1421 46.1247 4.446 3.209 4.733 0.000 0.0344 0/ 0 1215 12.5417 44.5937 4.481 3.169 4.826 0.000 0.0344 0/ 0 1216 14.2654 42.1918 4.587 3.088 5.049 0.000 0.0344 0/ 0 1217 16.1902 40.1058 4.671 3.014 5.225 0.000 0.0344 0/ 0 1218 17.1915 39.0151 4.721 2.973 5.324 0.000 0.0344 0/ 0 1219 18.1705 38.0302 4.770 2.940 5.413 0.000 0.0344 0/ 0 1220 19.5926 36.3804 4.826 2.880 5.530 0.000 0.0344 0/ 0 1221 21.4326 35.2551 4.872 2.824 5.626 0.000 0.0344 0/ 0 1222 23.4045 34.1829 4.925 2.776 5.725 0.000 0.0344 0/ 0 1223 25.5054 32.4860 4.980 2.699 5.842 0.000 0.0344 0/ 0 1224 27.4004 31.5016 5.024 2.651 5.926 0.000 0.0344 0/ 0 1225 31.3532 30.1849 5.093 2.571 6.054 0.000 0.0344 0/ 0 1226 25.4006 31.2448 5.187 2.704 6.084 0.000 0.0344 0/ 0 1227 22.1552 33.2133 5.091 2.799 5.909 0.000 0.0344 0/ 0 1228 20.1854 34.3425 5.043 2.862 5.810 0.000 0.0344 0/ 0 1229 18.3123 35.5050 4.993 2.924 5.705 0.000 0.0344 0/ 0 1230 16.5720 37.1832 4.929 2.987 5.577 0.000 0.0344 0/ 0 1231 16.0316 38.1942 4.877 3.024 5.483 0.000 0.0344 0/ 0 1232 14.4403 39.5259 4.805 3.081 5.344 0.000 0.0344 0/ 0 1233 13.2232 41.1320 4.773 3.146 5.247 0.000 0.0344 0/ 0 1234 12.5647 41.4210 4.752 3.162 5.205 0.000 0.0344 0/ 0 1235 12.1305 42.3412 4.724 3.196 5.136 0.000 0.0344 0/ 0 1236 12.0954 43.5906 4.615 3.205 4.978 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1237 450401.317 205885.111 61.785 MEAS Line0031 RT 1238 450401.390 205885.178 61.801 MEAS Line0031 RT 1239 450401.447 205885.046 62.002 MEAS Line0031 RT 1240 450401.557 205884.901 62.286 MEAS Line0031 RT 1241 450401.633 205884.794 62.461 MEAS Line0031 RT 1242 450401.680 205884.735 62.553 MEAS Line0031 RT 1243 450401.719 205884.679 62.626 MEAS Line0031 RT 1244 450401.772 205884.608 62.718 MEAS Line0031 RT 1245 450401.857 205884.492 62.849 MEAS Line0031 RT 1246 450401.915 205884.385 62.940 MEAS Line0031 RT 1247 450402.020 205884.268 63.066 MEAS Line0031 RT 1248 450402.068 205884.206 63.109 MEAS Line0031 RT 1249 450401.989 205884.152 63.116 MEAS Line0031 RT 1250 450401.859 205884.327 62.961 MEAS Line0031 RT 1251 450401.767 205884.485 62.809 MEAS Line0031 RT 1252 450401.695 205884.582 62.697 MEAS Line0031 RT 1253 450401.598 205884.705 62.532 MEAS Line0031 RT 1254 450401.493 205884.840 62.318 MEAS Line0031 RT 1255 450401.383 205884.993 62.037 MEAS Line0031 RT 1256 450401.352 205885.045 61.911 MEAS Line0031 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1237 12.1637 46.2003 4.448 3.218 4.728 0.000 0.0344 0/ 0 1238 13.1560 46.5419 4.518 3.299 4.744 0.000 0.0344 0/ 0 1239 14.4839 44.0512 4.578 3.185 4.945 0.000 0.0344 0/ 0 1240 17.2830 40.4405 4.714 3.076 5.229 0.000 0.0344 0/ 0 1241 19.2832 38.3952 4.799 2.998 5.404 0.000 0.0344 0/ 0 1242 20.4319 37.3758 4.847 2.960 5.496 0.000 0.0344 0/ 0 1243 21.5004 36.4502 4.882 2.921 5.569 0.000 0.0344 0/ 0 1244 23.1944 35.4116 4.929 2.876 5.661 0.000 0.0344 0/ 0 1245 25.5150 34.0955 4.997 2.806 5.792 0.000 0.0344 0/ 0 1246 27.5613 32.5545 5.034 2.737 5.883 0.000 0.0344 0/ 0 1247 31.0427 31.4106 5.114 2.686 6.009 0.000 0.0344 0/ 0 1248 32.3955 31.1039 5.137 2.660 6.052 0.000 0.0344 0/ 0 1249 31.4920 30.1733 5.098 2.572 6.059 0.000 0.0344 0/ 0 1250 27.2725 32.0312 5.011 2.660 5.904 0.000 0.0344 0/ 0 1251 24.1418 33.5939 4.939 2.762 5.752 0.000 0.0344 0/ 0 1252 22.0548 35.1914 4.881 2.822 5.640 0.000 0.0344 0/ 0 1253 19.2434 37.1510 4.796 2.903 5.475 0.000 0.0344 0/ 0 1254 16.4003 39.4607 4.689 2.999 5.261 0.000 0.0344 0/ 0 1255 13.5458 43.1022 4.556 3.117 4.980 0.000 0.0344 0/ 0 1256 13.0829 44.4016 4.496 3.161 4.854 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1257 450403.388 205882.317 61.791 MEAS Line0032 RT 1258 450403.330 205882.392 61.966 MEAS Line0032 RT 1259 450403.253 205882.496 62.151 MEAS Line0032 RT 1260 450403.201 205882.559 62.285 MEAS Line0032 RT 1261 450403.134 205882.654 62.421 MEAS Line0032 RT 1262 450403.068 205882.732 62.543 MEAS Line0032 RT 1263 450403.023 205882.794 62.627 MEAS Line0032 RT 1264 450402.936 205882.902 62.772 MEAS Line0032 RT 1265 450402.877 205882.980 62.860 MEAS Line0032 RT 1266 450402.802 205883.079 62.963 MEAS Line0032 RT 1267 450402.698 205883.214 63.091 MEAS Line0032 RT 1268 450402.779 205883.098 63.099 MEAS Line0032 RT 1269 450402.901 205882.939 63.106 MEAS Line0032 RT 1270 450402.963 205882.859 63.000 MEAS Line0032 RT 1271 450403.032 205882.771 62.888 MEAS Line0032 RT 1272 450403.119 205882.654 62.750 MEAS Line0032 RT 1273 450403.217 205882.531 62.525 MEAS Line0032 RT 1274 450403.290 205882.443 62.359 MEAS Line0032 RT 1275 450403.335 205882.382 62.248 MEAS Line0032 RT 1276 450403.402 205882.304 62.127 MEAS Line0032 RT 1277 450403.402 205882.291 61.905 MEAS Line0032 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1257 82.4540 42.0349 4.145 2.777 4.734 0.000 0.0344 0/ 0 1258 81.0302 40.0038 4.246 2.730 4.909 0.000 0.0344 0/ 0 1259 78.3455 37.5228 4.354 2.673 5.094 0.000 0.0344 0/ 0 1260 77.0126 36.2532 4.438 2.635 5.228 0.000 0.0344 0/ 0 1261 74.3910 34.5847 4.525 2.594 5.364 0.000 0.0344 0/ 0 1262 72.3325 33.4134 4.602 2.553 5.486 0.000 0.0344 0/ 0 1263 70.5442 32.5232 4.659 2.529 5.570 0.000 0.0344 0/ 0 1264 67.5345 31.2927 4.759 2.486 5.715 0.000 0.0344 0/ 0 1265 65.4155 30.4153 4.822 2.462 5.803 0.000 0.0344 0/ 0 1266 62.5041 29.5013 4.899 2.437 5.906 0.000 0.0344 0/ 0 1267 58.5239 28.5125 4.997 2.412 6.034 0.000 0.0344 0/ 0 1268 62.1222 28.5718 5.011 2.426 6.042 0.000 0.0344 0/ 0 1269 66.4745 29.1939 5.037 2.467 6.049 0.000 0.0344 0/ 0 1270 69.0233 30.1225 4.959 2.495 5.943 0.000 0.0344 0/ 0 1271 71.2736 31.1307 4.881 2.530 5.831 0.000 0.0344 0/ 0 1272 74.3235 32.3505 4.790 2.579 5.693 0.000 0.0344 0/ 0 1273 77.4046 34.4556 4.639 2.645 5.468 0.000 0.0344 0/ 0 1274 79.5107 36.3110 4.536 2.699 5.302 0.000 0.0344 0/ 0 1275 81.1610 37.4338 4.468 2.734 5.191 0.000 0.0344 0/ 0 1276 83.0306 39.1543 4.408 2.789 5.070 0.000 0.0344 0/ 0 1277 83.1913 41.0830 4.238 2.788 4.848 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1278 450403.392 205882.321 61.782 MEAS Line0033 RT 1279 450403.326 205882.406 61.971 MEAS Line0033 RT 1280 450403.234 205882.521 62.196 MEAS Line0033 RT 1281 450403.148 205882.636 62.393 MEAS Line0033 RT 1282 450403.076 205882.732 62.536 MEAS Line0033 RT 1283 450403.019 205882.803 62.636 MEAS Line0033 RT 1284 450402.945 205882.892 62.756 MEAS Line0033 RT 1285 450402.877 205882.992 62.867 MEAS Line0033 RT 1286 450402.759 205883.142 63.018 MEAS Line0033 RT 1287 450402.699 205883.216 63.083 MEAS Line0033 RT 1288 450402.773 205883.268 63.090 MEAS Line0033 RT 1289 450402.845 205883.150 62.987 MEAS Line0033 RT 1290 450402.943 205883.027 62.859 MEAS Line0033 RT 1291 450403.015 205882.936 62.752 MEAS Line0033 RT 1292 450403.075 205882.860 62.654 MEAS Line0033 RT 1293 450403.189 205882.712 62.439 MEAS Line0033 RT 1294 450403.319 205882.545 62.153 MEAS Line0033 RT 1295 450403.418 205882.415 61.902 MEAS Line0033 RT 1296 450403.463 205882.362 61.768 MEAS Line0033 RT 1297 450403.429 205882.344 61.755 MEAS Line0033 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1278 82.4153 42.1217 4.141 2.782 4.725 0.000 0.0344 0/ 0 1279 80.4411 39.5658 4.249 2.728 4.914 0.000 0.0344 0/ 0 1280 77.5827 37.2221 4.382 2.660 5.139 0.000 0.0344 0/ 0 1281 75.0622 35.1639 4.506 2.602 5.336 0.000 0.0344 0/ 0 1282 72.3708 33.4850 4.600 2.560 5.479 0.000 0.0344 0/ 0 1283 70.4128 32.4757 4.666 2.528 5.579 0.000 0.0344 0/ 0 1284 68.1204 31.3810 4.748 2.490 5.699 0.000 0.0344 0/ 0 1285 65.2620 30.4222 4.831 2.467 5.810 0.000 0.0344 0/ 0 1286 61.0334 29.2614 4.942 2.429 5.961 0.000 0.0344 0/ 0 1287 58.5051 28.5532 4.991 2.414 6.026 0.000 0.0344 0/ 0 1288 58.4237 29.4706 5.042 2.505 6.033 0.000 0.0344 0/ 0 1289 61.5209 30.2507 4.955 2.509 5.930 0.000 0.0344 0/ 0 1290 65.2113 31.3100 4.862 2.542 5.802 0.000 0.0344 0/ 0 1291 67.5107 32.2921 4.787 2.571 5.695 0.000 0.0344 0/ 0 1292 69.5443 33.2520 4.721 2.600 5.597 0.000 0.0344 0/ 0 1293 73.4506 35.3258 4.578 2.662 5.382 0.000 0.0344 0/ 0 1294 77.5146 38.3714 4.402 2.747 5.096 0.000 0.0344 0/ 0 1295 80.5143 41.3014 4.256 2.821 4.845 0.000 0.0344 0/ 0 1296 82.0341 43.0533 4.182 2.857 4.711 0.000 0.0344 0/ 0 1297 82.1906 42.5055 4.148 2.821 4.698 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1298 450401.234 205885.036 63.192 MEAS Line0034 RT 1299 450402.229 205883.699 63.150 MEAS Line0034 RT 1300 450403.338 205882.242 63.114 MEAS Line0034 RT 1301 450403.331 205882.240 63.314 MEAS Line0034 RT 1302 450402.301 205883.617 63.298 MEAS Line0034 RT 1303 450401.233 205885.037 63.328 MEAS Line0034 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1298 11.0437 34.5556 5.462 3.128 6.135 0.000 0.0344 0/ 0 1299 42.3939 27.5808 5.023 2.356 6.093 0.000 0.0344 0/ 0 1300 84.1116 31.4248 5.172 2.719 6.057 0.000 0.0344 0/ 0 1301 84.1355 30.3109 5.340 2.712 6.257 0.000 0.0344 0/ 0 1302 45.1848 27.0603 5.150 2.346 6.241 0.000 0.0344 0/ 0 1303 11.0407 34.0806 5.574 3.128 6.271 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1304 450401.236 205885.036 63.189 MEAS Line0035 RT 1305 450402.199 205883.752 63.141 MEAS Line0035 RT 1306 450403.326 205882.241 63.122 MEAS Line0035 RT 1307 450403.357 205882.256 63.111 MEAS Line0035 RT 1308 450402.290 205883.721 63.117 MEAS Line0035 RT 1309 450401.247 205885.041 63.169 MEAS Line0035 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1304 11.0635 34.5707 5.459 3.128 6.132 0.000 0.0344 0/ 0 1305 41.1619 28.1240 5.023 2.375 6.084 0.000 0.0344 0/ 0 1306 84.1201 31.3311 5.173 2.707 6.065 0.000 0.0344 0/ 0 1307 83.5712 31.5529 5.181 2.740 6.054 0.000 0.0344 0/ 0 1308 43.2213 28.4332 5.021 2.413 6.060 0.000 0.0344 0/ 0 1309 11.1728 35.0754 5.448 3.135 6.112 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1310 450401.273 205885.056 63.167 MEAS Line0036 RT 1311 450402.327 205883.637 63.115 MEAS Line0036 RT 1312 450403.356 205882.261 63.114 MEAS Line0036 RT 1313 450403.454 205882.343 63.112 MEAS Line0036 RT 1314 450402.321 205883.886 63.110 MEAS Line0036 RT 1315 450401.381 205885.138 63.154 MEAS Line0036 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1310 11.4246 35.1908 5.457 3.155 6.110 0.000 0.0344 0/ 0 1311 45.2410 28.2341 5.002 2.379 6.058 0.000 0.0344 0/ 0 1312 83.5026 31.5409 5.182 2.739 6.057 0.000 0.0344 0/ 0 1313 82.2419 32.5407 5.238 2.846 6.055 0.000 0.0344 0/ 0 1314 41.1932 30.1033 5.085 2.556 6.053 0.000 0.0344 0/ 0 1315 13.1628 36.1610 5.507 3.258 6.097 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1316 450401.440 205884.813 63.390 MEAS Line0037 RT 1317 450400.594 205884.166 64.976 MEAS Line0037 RT 1318 450400.617 205884.124 64.982 MEAS Line0037 RT 1319 450401.473 205884.790 63.426 MEAS Line0037 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1316 15.4949 32.1852 5.533 2.958 6.333 0.000 0.0344 0/ 0 1317 358.5829 19.2060 6.637 2.199 7.919 0.000 0.0344 0/ 0 1318 359.3433 18.5934 6.629 2.157 7.925 0.000 0.0344 0/ 0 1319 16.3425 32.0038 5.557 2.946 6.369 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1320 450401.662 205884.536 63.416 MEAS Line0038 RT 1321 450400.795 205883.893 64.967 MEAS Line0038 RT 1322 450400.822 205883.851 64.968 MEAS Line0038 RT 1323 450401.693 205884.487 63.396 MEAS Line0038 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1320 21.4921 30.2830 5.456 2.767 6.359 0.000 0.0344 0/ 0 1321 4.4737 17.1035 6.545 1.933 7.910 0.000 0.0344 0/ 0 1322 5.4357 16.5045 6.534 1.894 7.911 0.000 0.0344 0/ 0 1323 22.4844 30.1654 5.422 2.734 6.339 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1324 450401.885 205884.257 63.400 MEAS Line0039 RT 1325 450401.137 205883.701 64.723 MEAS Line0039 RT 1326 450401.151 205883.633 64.768 MEAS Line0039 RT 1327 450401.923 205884.204 63.405 MEAS Line0039 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1324 28.4004 29.0643 5.364 2.610 6.343 0.000 0.0344 0/ 0 1325 16.1244 16.4335 6.274 1.806 7.666 0.000 0.0344 0/ 0 1326 17.1702 16.0430 6.300 1.744 7.711 0.000 0.0344 0/ 0 1327 29.5820 28.4944 5.354 2.582 6.348 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1328 450402.101 205883.957 63.405 MEAS Line0040 RT 1329 450401.239 205883.306 64.960 MEAS Line0040 RT 1330 450401.268 205883.262 64.970 MEAS Line0040 RT 1331 450402.131 205883.916 63.406 MEAS Line0040 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1328 36.2453 27.4804 5.303 2.473 6.348 0.000 0.0344 0/ 0 1329 24.2115 13.1416 6.416 1.469 7.903 0.000 0.0344 0/ 0 1330 26.0733 12.5910 6.420 1.443 7.913 0.000 0.0344 0/ 0 1331 37.3238 27.3900 5.296 2.458 6.349 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1332 450402.308 205883.662 63.386 MEAS Line0041 RT 1333 450401.452 205883.022 64.928 MEAS Line0041 RT 1334 450401.467 205882.977 64.900 MEAS Line0041 RT 1335 450402.333 205883.604 63.356 MEAS Line0041 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1332 44.3935 27.0154 5.245 2.384 6.329 0.000 0.0344 0/ 0 1333 37.5014 12.0801 6.356 1.336 7.871 0.000 0.0344 0/ 0 1334 39.3344 11.5718 6.323 1.310 7.843 0.000 0.0344 0/ 0 1335 46.0518 26.5704 5.207 2.360 6.299 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1336 450402.521 205883.374 63.391 MEAS Line0042 RT 1337 450401.669 205882.740 64.955 MEAS Line0042 RT 1338 450401.699 205882.698 64.955 MEAS Line0042 RT 1339 450402.553 205883.338 63.409 MEAS Line0042 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1336 53.1839 26.4321 5.237 2.355 6.334 0.000 0.0344 0/ 0 1337 53.1804 11.4208 6.373 1.293 7.898 0.000 0.0344 0/ 0 1338 55.3307 11.4157 6.373 1.292 7.898 0.000 0.0344 0/ 0 1339 54.2845 26.4102 5.254 2.360 6.352 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1340 450402.734 205883.098 63.405 MEAS Line0043 RT 1341 450401.965 205882.524 64.844 MEAS Line0043 RT 1342 450402.007 205882.476 64.774 MEAS Line0043 RT 1343 450402.779 205883.043 63.407 MEAS Line0043 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1340 61.4248 26.5731 5.263 2.386 6.348 0.000 0.0344 0/ 0 1341 67.1759 13.1529 6.298 1.444 7.787 0.000 0.0344 0/ 0 1342 69.3906 13.3530 6.235 1.465 7.717 0.000 0.0344 0/ 0 1343 63.2148 27.0532 5.271 2.401 6.350 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1344 450402.924 205882.795 63.328 MEAS Line0044 RT 1345 450402.108 205882.165 64.933 MEAS Line0044 RT 1346 450402.129 205882.120 64.951 MEAS Line0044 RT 1347 450402.984 205882.762 63.398 MEAS Line0044 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1344 70.0707 27.4956 5.218 2.436 6.271 0.000 0.0344 0/ 0 1345 82.2106 13.2716 6.395 1.488 7.876 0.000 0.0344 0/ 0 1346 84.1037 13.3309 6.415 1.503 7.894 0.000 0.0344 0/ 0 1347 71.1831 27.5455 5.300 2.481 6.341 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1348 450403.160 205882.522 63.381 MEAS Line0045 RT 1349 450402.330 205881.875 64.947 MEAS Line0045 RT 1350 450402.351 205881.820 64.955 MEAS Line0045 RT 1351 450403.202 205882.473 63.398 MEAS Line0045 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1348 77.3704 28.5958 5.336 2.587 6.324 0.000 0.0344 0/ 0 1349 93.0602 15.1504 6.460 1.699 7.890 0.000 0.0344 0/ 0 1350 94.5320 15.2641 6.475 1.724 7.898 0.000 0.0344 0/ 0 1351 78.5103 29.1220 5.366 2.618 6.341 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1352 450401.142 205884.965 63.601 MEAS Line0046 RT 1353 450401.102 205884.784 63.776 MEAS Line0046 RT 1354 450401.069 205884.583 63.975 MEAS Line0046 RT 1355 450401.050 205884.313 64.221 MEAS Line0046 RT 1356 450401.044 205884.091 64.393 MEAS Line0046 RT 1357 450401.049 205883.871 64.565 MEAS Line0046 RT 1358 450401.069 205883.737 64.667 MEAS Line0046 RT 1359 450401.112 205883.593 64.764 MEAS Line0046 RT 1360 450401.155 205883.494 64.830 MEAS Line0046 RT 1361 450401.173 205883.437 64.867 MEAS Line0046 RT 1362 450401.172 205883.336 64.938 MEAS Line0046 RT 1363 450400.961 205883.600 64.933 MEAS Line0046 RT 1364 450400.924 205883.760 64.823 MEAS Line0046 RT 1365 450400.895 205883.904 64.721 MEAS Line0046 RT 1366 450400.878 205884.072 64.601 MEAS Line0046 RT 1367 450400.870 205884.216 64.487 MEAS Line0046 RT 1368 450400.863 205884.353 64.391 MEAS Line0046 RT 1369 450400.873 205884.498 64.258 MEAS Line0046 RT 1370 450400.878 205884.608 64.162 MEAS Line0046 RT 1371 450400.905 205884.787 63.997 MEAS Line0046 RT 1372 450401.011 205884.858 63.810 MEAS Line0046 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1352 9.3827 31.5345 5.756 3.041 6.544 0.000 0.0344 0/ 0 1353 9.2732 29.2555 5.812 2.856 6.719 0.000 0.0344 0/ 0 1354 9.2744 26.4460 5.892 2.652 6.918 0.000 0.0344 0/ 0 1355 10.0440 23.2353 6.001 2.383 7.164 0.000 0.0344 0/ 0 1356 10.5737 20.5105 6.077 2.163 7.336 0.000 0.0344 0/ 0 1357 12.2001 18.2533 6.167 1.949 7.508 0.000 0.0344 0/ 0 1358 13.5006 17.0133 6.226 1.823 7.610 0.000 0.0344 0/ 0 1359 16.2445 15.3918 6.283 1.695 7.707 0.000 0.0344 0/ 0 1360 18.5145 14.4639 6.325 1.613 7.773 0.000 0.0344 0/ 0 1361 20.1015 14.1653 6.350 1.566 7.810 0.000 0.0344 0/ 0 1362 21.2943 13.1803 6.395 1.471 7.881 0.000 0.0344 0/ 0 1363 11.2052 14.5918 6.438 1.665 7.876 0.000 0.0344 0/ 0 1364 9.1225 16.3317 6.373 1.816 7.766 0.000 0.0344 0/ 0 1365 7.4219 18.0140 6.317 1.955 7.664 0.000 0.0344 0/ 0 1366 6.3810 19.4749 6.257 2.119 7.544 0.000 0.0344 0/ 0 1367 6.0034 21.2347 6.200 2.262 7.430 0.000 0.0344 0/ 0 1368 5.3023 22.5325 6.162 2.397 7.334 0.000 0.0344 0/ 0 1369 5.2459 24.3756 6.099 2.542 7.201 0.000 0.0344 0/ 0 1370 5.1744 25.5740 6.059 2.652 7.105 0.000 0.0344 0/ 0 1371 5.3104 28.1217 5.995 2.833 6.940 0.000 0.0344 0/ 0 1372 7.2720 29.4645 5.871 2.916 6.753 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1373 450403.184 205882.123 63.483 MEAS Line0047 RT 1374 450402.964 205882.139 63.863 MEAS Line0047 RT 1375 450402.821 205882.165 64.017 MEAS Line0047 RT 1376 450402.659 205882.190 64.164 MEAS Line0047 RT 1377 450402.467 205882.235 64.324 MEAS Line0047 RT 1378 450402.381 205882.271 64.421 MEAS Line0047 RT 1379 450402.233 205882.321 64.545 MEAS Line0047 RT 1380 450402.028 205882.429 64.709 MEAS Line0047 RT 1381 450401.877 205882.506 64.814 MEAS Line0047 RT 1382 450401.732 205882.594 64.920 MEAS Line0047 RT 1383 450401.947 205882.297 64.894 MEAS Line0047 RT 1384 450402.095 205882.218 64.799 MEAS Line0047 RT 1385 450402.270 205882.137 64.665 MEAS Line0047 RT 1386 450402.297 205882.138 64.632 MEAS Line0047 RT 1387 450402.397 205882.095 64.556 MEAS Line0047 RT 1388 450402.534 205882.046 64.433 MEAS Line0047 RT 1389 450402.741 205881.989 64.236 MEAS Line0047 RT 1390 450402.876 205881.963 64.106 MEAS Line0047 RT 1391 450403.014 205881.944 63.921 MEAS Line0047 RT 1392 450403.114 205882.034 63.775 MEAS Line0047 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1373 86.2944 28.1057 5.411 2.555 6.426 0.000 0.0344 0/ 0 1374 85.4730 24.2505 5.655 2.338 6.806 0.000 0.0344 0/ 0 1375 84.5023 22.3017 5.740 2.197 6.960 0.000 0.0344 0/ 0 1376 83.4237 20.3007 5.819 2.038 7.107 0.000 0.0344 0/ 0 1377 81.4130 18.1710 5.908 1.854 7.267 0.000 0.0344 0/ 0 1378 80.0714 17.1610 5.976 1.774 7.364 0.000 0.0344 0/ 0 1379 77.3201 15.4155 6.057 1.639 7.488 0.000 0.0344 0/ 0 1380 71.4110 13.4633 6.172 1.470 7.652 0.000 0.0344 0/ 0 1381 66.3453 12.3131 6.249 1.355 7.757 0.000 0.0344 0/ 0 1382 60.1835 11.3123 6.334 1.265 7.863 0.000 0.0344 0/ 0 1383 75.5421 12.2142 6.327 1.354 7.837 0.000 0.0344 0/ 0 1384 80.1620 13.4149 6.263 1.483 7.742 0.000 0.0344 0/ 0 1385 84.0344 15.2740 6.175 1.646 7.608 0.000 0.0344 0/ 0 1386 84.0747 15.4710 6.150 1.673 7.575 0.000 0.0344 0/ 0 1387 85.5124 16.5035 6.103 1.768 7.499 0.000 0.0344 0/ 0 1388 87.3757 18.2416 6.028 1.903 7.376 0.000 0.0344 0/ 0 1389 89.2436 20.5334 5.910 2.108 7.179 0.000 0.0344 0/ 0 1390 90.0633 22.3522 5.840 2.243 7.049 0.000 0.0344 0/ 0 1391 90.3257 24.3445 5.725 2.381 6.864 0.000 0.0344 0/ 0 1392 88.2734 26.0732 5.637 2.482 6.718 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1393 450400.303 205884.330 64.960 MEAS Line0048 RT 1394 450401.356 205882.970 64.914 MEAS Line0048 RT 1395 450402.461 205881.482 64.922 MEAS Line0048 RT 1396 450402.436 205881.467 64.955 MEAS Line0048 RT 1397 450402.429 205881.442 64.992 MEAS Line0048 RT 1398 450402.399 205881.419 64.964 MEAS Line0048 RT 1399 450401.486 205882.670 65.007 MEAS Line0048 RT 1400 450400.253 205884.292 65.041 MEAS Line0048 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1393 352.0231 20.5423 6.686 2.386 7.903 0.000 0.0344 0/ 0 1394 35.4715 11.1622 6.322 1.236 7.857 0.000 0.0344 0/ 0 1395 104.5112 16.5636 6.489 1.891 7.865 0.000 0.0344 0/ 0 1396 105.3012 16.4116 6.515 1.871 7.898 0.000 0.0344 0/ 0 1397 106.1738 16.3545 6.551 1.871 7.935 0.000 0.0344 0/ 0 1398 107.1402 16.2832 6.518 1.849 7.907 0.000 0.0344 0/ 0 1399 50.3044 9.5726 6.389 1.105 7.950 0.000 0.0344 0/ 0 1400 350.4237 20.2509 6.752 2.356 7.984 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1401 450400.313 205884.336 64.941 MEAS Line0049 RT 1402 450401.417 205882.938 64.909 MEAS Line0049 RT 1403 450402.456 205881.479 64.931 MEAS Line0049 RT 1404 450402.467 205881.481 64.893 MEAS Line0049 RT 1405 450401.211 205883.207 64.924 MEAS Line0049 RT 1406 450400.313 205884.339 64.940 MEAS Line0049 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1401 352.1841 21.0001 6.670 2.390 7.884 0.000 0.0344 0/ 0 1402 38.5503 11.2308 6.319 1.248 7.852 0.000 0.0344 0/ 0 1403 104.5941 16.5318 6.497 1.887 7.874 0.000 0.0344 0/ 0 1404 104.5007 17.0401 6.464 1.897 7.836 0.000 0.0344 0/ 0 1405 24.5853 12.2541 6.359 1.369 7.867 0.000 0.0344 0/ 0 1406 352.1824 21.0202 6.670 2.394 7.883 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1407 450400.344 205884.349 64.945 MEAS Line0050 RT 1408 450401.405 205882.974 64.924 MEAS Line0050 RT 1409 450402.462 205881.500 64.904 MEAS Line0050 RT 1410 450402.513 205881.538 64.859 MEAS Line0050 RT 1411 450401.368 205883.126 64.984 MEAS Line0050 RT 1412 450400.398 205884.396 64.975 MEAS Line0050 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1407 353.0529 21.0331 6.677 2.399 7.888 0.000 0.0344 0/ 0 1408 37.2956 11.3247 6.338 1.269 7.867 0.000 0.0344 0/ 0 1409 104.1833 16.5741 6.472 1.888 7.847 0.000 0.0344 0/ 0 1410 102.5114 17.2525 6.441 1.929 7.802 0.000 0.0344 0/ 0 1411 32.2207 12.2034 6.418 1.372 7.927 0.000 0.0344 0/ 0 1412 354.2907 21.1744 6.720 2.440 7.918 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1413 450401.652 205883.080 64.818 MEAS Line0051 RT 1414 450401.686 205883.049 64.818 MEAS Line0051 RT 1415 450399.577 205881.502 64.777 MEAS Line0051 RT 1416 450399.553 205881.548 64.772 MEAS Line0051 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1413 42.2747 13.5314 6.287 1.509 7.761 0.000 0.0344 0/ 0 1414 44.1320 13.5317 6.288 1.509 7.761 0.000 0.0344 0/ 0 1415 66.1328 349.1309 6.172 1.154 7.720 0.000 0.0344 0/ 0 1416 68.4735 349.1012 6.168 1.159 7.715 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1417 450400.435 205884.045 65.264 MEAS Line0052 RT 1418 450399.697 205883.519 66.609 MEAS Line0052 RT 1419 450399.725 205883.474 66.622 MEAS Line0052 RT 1420 450400.464 205884.015 65.252 MEAS Line0052 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1417 354.3342 17.4041 6.874 2.087 8.207 0.000 0.0344 0/ 0 1418 328.5522 12.5544 8.100 1.812 9.552 0.000 0.0344 0/ 0 1419 328.5515 12.3237 8.101 1.759 9.565 0.000 0.0344 0/ 0 1420 355.1710 17.2659 6.853 2.055 8.195 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1421 450400.644 205883.774 65.248 MEAS Line0053 RT 1422 450399.917 205883.252 66.651 MEAS Line0053 RT 1423 450399.954 205883.195 66.598 MEAS Line0053 RT 1424 450400.668 205883.742 65.243 MEAS Line0053 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1421 0.2010 15.2744 6.780 1.807 8.191 0.000 0.0344 0/ 0 1422 330.5226 10.3008 8.072 1.471 9.594 0.000 0.0344 0/ 0 1423 331.0359 10.0545 8.008 1.404 9.541 0.000 0.0344 0/ 0 1424 1.0832 15.1226 6.766 1.775 8.186 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1425 450400.866 205883.492 65.226 MEAS Line0054 RT 1426 450400.136 205882.963 66.650 MEAS Line0054 RT 1427 450400.169 205882.898 66.601 MEAS Line0054 RT 1428 450400.907 205883.448 65.215 MEAS Line0054 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1425 8.4043 13.1932 6.693 1.543 8.169 0.000 0.0344 0/ 0 1426 333.2854 7.5911 8.013 1.113 9.593 0.000 0.0344 0/ 0 1427 333.3050 7.3046 7.955 1.040 9.544 0.000 0.0344 0/ 0 1428 10.3003 13.0231 6.673 1.506 8.158 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1429 450401.087 205883.198 65.236 MEAS Line0055 RT 1430 450400.355 205882.651 66.521 MEAS Line0055 RT 1431 450400.394 205882.611 66.592 MEAS Line0055 RT 1432 450401.122 205883.161 65.227 MEAS Line0055 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1429 20.1358 11.2235 6.652 1.312 8.179 0.000 0.0344 0/ 0 1430 337.5256 5.2404 7.842 0.738 9.464 0.000 0.0344 0/ 0 1431 339.3842 4.5852 7.908 0.687 9.535 0.000 0.0344 0/ 0 1432 22.1712 11.1217 6.639 1.290 8.170 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1433 450401.315 205882.917 65.192 MEAS Line0056 RT 1434 450401.068 205882.746 65.682 MEAS Line0056 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1433 35.4014 10.1351 6.583 1.169 8.135 0.000 0.0344 0/ 0 1434 29.0948 7.1748 7.025 0.892 8.625 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1435 450401.531 205882.628 65.206 MEAS Line0057 RT 1436 450400.799 205882.101 66.571 MEAS Line0057 RT 1437 450400.819 205882.052 66.565 MEAS Line0057 RT 1438 450401.555 205882.595 65.208 MEAS Line0057 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1435 53.3706 9.4438 6.587 1.115 8.149 0.000 0.0344 0/ 0 1436 51.1440 1.3323 7.860 0.213 9.514 0.000 0.0344 0/ 0 1437 65.2837 1.2941 7.853 0.205 9.508 0.000 0.0344 0/ 0 1438 55.4606 9.4449 6.589 1.116 8.151 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1439 450401.734 205882.353 65.150 MEAS Line0058 RT 1440 450401.012 205881.821 66.563 MEAS Line0058 RT 1441 450401.048 205881.766 66.505 MEAS Line0058 RT 1442 450401.751 205882.305 65.024 MEAS Line0058 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1439 70.4132 10.1630 6.541 1.167 8.093 0.000 0.0344 0/ 0 1440 111.0241 2.5755 7.859 0.407 9.506 0.000 0.0344 0/ 0 1441 115.5303 3.2309 7.804 0.461 9.448 0.000 0.0344 0/ 0 1442 73.1120 10.2860 6.417 1.168 7.967 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1443 450401.957 205882.056 65.204 MEAS Line0059 RT 1444 450401.224 205881.534 66.516 MEAS Line0059 RT 1445 450401.242 205881.487 66.550 MEAS Line0059 RT 1446 450401.981 205882.020 65.166 MEAS Line0059 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1443 86.0849 11.3311 6.624 1.327 8.147 0.000 0.0344 0/ 0 1444 126.1504 5.2157 7.837 0.733 9.459 0.000 0.0344 0/ 0 1445 128.1513 5.3851 7.874 0.775 9.493 0.000 0.0344 0/ 0 1446 87.4412 11.4834 6.591 1.349 8.109 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1447 450402.176 205881.757 65.216 MEAS Line0060 RT 1448 450401.462 205881.217 66.568 MEAS Line0060 RT 1449 450401.495 205881.170 66.596 MEAS Line0060 RT 1450 450402.204 205881.712 65.215 MEAS Line0060 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1447 97.4611 13.2758 6.685 1.557 8.159 0.000 0.0344 0/ 0 1448 132.0718 8.0607 7.933 1.118 9.511 0.000 0.0344 0/ 0 1449 132.4524 8.2802 7.969 1.173 9.539 0.000 0.0344 0/ 0 1450 99.1204 13.4532 6.693 1.592 8.158 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1451 450399.558 205883.664 66.450 MEAS Line0061 RT 1452 450400.653 205882.237 66.609 MEAS Line0061 RT 1453 450401.555 205881.032 66.571 MEAS Line0061 RT 1454 450401.561 205881.082 66.625 MEAS Line0061 RT 1455 450400.437 205882.558 66.744 MEAS Line0061 RT 1456 450399.565 205883.671 66.486 MEAS Line0061 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1451 327.3846 14.3317 7.993 2.009 9.393 0.000 0.0344 0/ 0 1452 4.1336 1.5760 7.900 0.271 9.552 0.000 0.0344 0/ 0 1453 135.2440 9.2906 7.966 1.313 9.514 0.000 0.0344 0/ 0 1454 133.3807 9.1229 8.014 1.282 9.568 0.000 0.0344 0/ 0 1455 341.3616 4.2601 8.054 0.623 9.687 0.000 0.0344 0/ 0 1456 327.5444 14.3023 8.028 2.011 9.429 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1457 450397.091 205881.859 61.355 MEAS Line0062 RT 1458 450397.101 205881.856 61.247 MEAS Line0062 RT 1459 450397.798 205880.848 61.250 MEAS Line0062 RT 1460 450397.900 205880.729 61.266 MEAS Line0062 RT 1461 450398.072 205880.503 61.275 MEAS Line0062 RT 1462 450398.066 205880.500 61.362 MEAS Line0062 RT 1463 450397.636 205881.105 61.355 MEAS Line0062 RT 1464 450397.569 205881.201 61.348 MEAS Line0062 RT 1465 450397.218 205881.705 61.351 MEAS Line0062 RT 1466 450397.127 205881.832 61.342 MEAS Line0062 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1457 268.1525 53.1819 4.419 3.543 4.298 0.000 0.0344 0/ 0 1458 268.1132 54.2144 4.348 3.534 4.190 0.000 0.0344 0/ 0 1459 248.2752 50.1434 3.965 3.048 4.193 0.000 0.0344 0/ 0 1460 245.3735 49.3704 3.939 3.001 4.209 0.000 0.0344 0/ 0 1461 240.1510 49.0238 3.906 2.950 4.218 0.000 0.0344 0/ 0 1462 240.1509 48.0921 3.969 2.957 4.305 0.000 0.0344 0/ 0 1463 253.5705 49.4352 4.087 3.118 4.298 0.000 0.0344 0/ 0 1464 255.5753 50.1043 4.113 3.159 4.291 0.000 0.0344 0/ 0 1465 265.3637 52.2421 4.322 3.425 4.294 0.000 0.0344 0/ 0 1466 267.4727 53.1006 4.383 3.508 4.285 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1467 450397.191 205881.790 61.265 MEAS Line0063 RT 1468 450397.194 205881.800 61.368 MEAS Line0063 RT 1469 450397.163 205881.810 61.392 MEAS Line0063 RT 1470 450397.137 205881.813 61.302 MEAS Line0063 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1467 267.0351 53.2924 4.288 3.447 4.208 0.000 0.0344 0/ 0 1468 267.1248 52.2213 4.347 3.443 4.311 0.000 0.0344 0/ 0 1469 267.2452 52.2215 4.386 3.473 4.335 0.000 0.0344 0/ 0 1470 267.2841 53.3037 4.352 3.499 4.245 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1471 450397.186 205881.803 61.277 MEAS Line0064 DE 1471 450397.186 205881.803 61.277 MEAS Line0064 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1471 267.1621 53.2406 4.299 3.451 4.220 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1472 450397.188 205881.803 61.305 MEAS Line0065 DE 1472 450397.188 205881.803 61.305 MEAS Line0065 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1472 267.1607 53.0510 4.313 3.449 4.248 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1473 450397.623 205881.187 61.280 MEAS Line0066 DE 1473 450397.623 205881.187 61.280 MEAS Line0066 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1473 255.2802 50.2838 4.032 3.110 4.223 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1475 450397.619 205881.191 61.308 MEAS Line0067 DE 1475 450397.619 205881.191 61.308 MEAS Line0067 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1475 255.3350 50.1145 4.051 3.113 4.251 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1476 450397.623 205881.184 61.271 MEAS Line0068 RT 1477 450397.625 205881.182 61.367 MEAS Line0068 RT 1478 450397.621 205881.189 61.359 MEAS Line0068 RT 1479 450397.613 205881.194 61.277 MEAS Line0068 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1476 255.2515 50.3426 4.026 3.110 4.214 0.000 0.0344 0/ 0 1477 255.2256 49.3128 4.087 3.109 4.310 0.000 0.0344 0/ 0 1478 255.3124 49.3734 4.083 3.111 4.302 0.000 0.0344 0/ 0 1479 255.3804 50.3421 4.036 3.117 4.220 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1480 450399.059 205879.208 61.329 MEAS Line0069 RT 1481 450398.895 205879.417 61.319 MEAS Line0069 RT 1482 450398.883 205879.429 61.261 MEAS Line0069 RT 1483 450398.872 205879.444 61.322 MEAS Line0069 RT 1484 450398.803 205879.536 61.313 MEAS Line0069 RT 1485 450398.807 205879.527 61.254 MEAS Line0069 RT 1486 450398.824 205879.525 61.230 MEAS Line0069 RT 1487 450398.834 205879.508 61.218 MEAS Line0069 RT 1488 450399.054 205879.212 61.228 MEAS Line0069 RT 1489 450399.052 205879.215 61.307 MEAS Line0069 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1480 209.4211 50.3150 4.114 3.176 4.272 0.000 0.0344 0/ 0 1481 214.1659 49.4931 4.039 3.086 4.262 0.000 0.0344 0/ 0 1482 214.3444 50.2606 3.999 3.083 4.204 0.000 0.0344 0/ 0 1483 214.5502 49.4240 4.034 3.077 4.265 0.000 0.0344 0/ 0 1484 216.5759 49.2952 4.001 3.043 4.256 0.000 0.0344 0/ 0 1485 216.4904 50.1143 3.967 3.047 4.197 0.000 0.0344 0/ 0 1486 216.3213 50.2307 3.945 3.039 4.173 0.000 0.0344 0/ 0 1487 216.1043 50.3507 3.944 3.047 4.161 0.000 0.0344 0/ 0 1488 209.4906 51.3757 4.050 3.175 4.171 0.000 0.0344 0/ 0 1489 209.5233 50.4533 4.098 3.174 4.250 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1490 450398.978 205879.295 61.343 MEAS Line0070 RT 1491 450399.012 205879.318 61.768 MEAS Line0070 RT 1492 450399.025 205879.350 62.047 MEAS Line0070 RT 1493 450398.948 205879.442 62.061 MEAS Line0070 RT 1494 450398.896 205879.381 61.353 MEAS Line0070 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1490 211.4634 50.0514 4.097 3.143 4.286 0.000 0.0344 0/ 0 1491 211.2716 45.2836 4.356 3.106 4.711 0.000 0.0344 0/ 0 1492 211.3346 42.3930 4.532 3.071 4.990 0.000 0.0344 0/ 0 1493 213.4309 42.1222 4.519 3.036 5.004 0.000 0.0344 0/ 0 1494 213.5327 49.4336 4.082 3.115 4.296 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1495 450398.679 205879.235 61.585 MEAS Line0071 RT 1496 450399.299 205879.705 62.691 MEAS Line0071 RT 1497 450399.512 205879.859 63.107 MEAS Line0071 RT 1498 450399.584 205879.748 63.106 MEAS Line0071 RT 1499 450399.031 205879.341 62.063 MEAS Line0071 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1495 215.3422 49.2852 4.418 3.359 4.528 0.000 0.0344 0/ 0 1496 210.3229 33.2616 4.766 2.626 5.634 0.000 0.0344 0/ 0 1497 208.0035 28.3139 5.000 2.388 6.050 0.000 0.0344 0/ 0 1498 205.1732 29.1152 5.032 2.455 6.049 0.000 0.0344 0/ 0 1499 211.2237 42.3402 4.548 3.076 5.006 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1500 450398.501 205879.396 61.582 MEAS Line0072 RT 1501 450399.226 205879.931 62.884 MEAS Line0072 RT 1502 450399.197 205880.014 62.936 MEAS Line0072 RT 1503 450398.449 205879.476 61.569 MEAS Line0072 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1500 219.3947 49.2048 4.403 3.340 4.525 0.000 0.0344 0/ 0 1501 214.3916 30.4135 4.849 2.475 5.827 0.000 0.0344 0/ 0 1502 216.1914 29.5139 4.868 2.424 5.879 0.000 0.0344 0/ 0 1503 221.1511 49.1436 4.373 3.313 4.512 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1504 450398.304 205879.699 61.591 MEAS Line0073 RT 1505 450399.093 205880.307 63.047 MEAS Line0073 RT 1506 450399.054 205880.397 63.097 MEAS Line0073 RT 1507 450398.240 205879.776 61.594 MEAS Line0073 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1504 225.4601 48.2939 4.341 3.251 4.534 0.000 0.0344 0/ 0 1505 222.5015 27.3526 4.889 2.264 5.990 0.000 0.0344 0/ 0 1506 225.0951 26.5551 4.916 2.226 6.040 0.000 0.0344 0/ 0 1507 227.3140 48.2414 4.339 3.245 4.537 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1508 450398.106 205879.979 61.644 MEAS Line0074 RT 1509 450398.923 205880.620 63.126 MEAS Line0074 RT 1510 450398.865 205880.718 63.085 MEAS Line0074 RT 1511 450398.034 205880.069 61.651 MEAS Line0074 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1508 231.4823 47.3941 4.350 3.215 4.587 0.000 0.0344 0/ 0 1509 231.4542 26.1534 4.919 2.177 6.069 0.000 0.0344 0/ 0 1510 234.4518 26.2105 4.878 2.165 6.028 0.000 0.0344 0/ 0 1511 233.5124 47.3703 4.357 3.218 4.594 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1512 450397.916 205880.284 61.608 MEAS Line0075 RT 1513 450398.712 205880.899 63.113 MEAS Line0075 RT 1514 450398.649 205881.004 63.112 MEAS Line0075 RT 1515 450397.822 205880.380 61.625 MEAS Line0075 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1512 238.1343 47.5025 4.312 3.196 4.551 0.000 0.0344 0/ 0 1513 240.5532 26.3306 4.918 2.198 6.056 0.000 0.0344 0/ 0 1514 244.0646 26.3753 4.920 2.206 6.055 0.000 0.0344 0/ 0 1515 240.3315 47.5709 4.347 3.228 4.568 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1516 450398.062 205880.452 61.933 MEAS Line0076 RT 1517 450398.139 205880.511 62.080 MEAS Line0076 RT 1518 450398.121 205880.540 62.082 MEAS Line0076 RT 1519 450398.041 205880.479 61.932 MEAS Line0076 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1516 239.2925 42.4947 4.389 2.984 4.876 0.000 0.0344 0/ 0 1517 239.4341 40.3734 4.435 2.888 5.023 0.000 0.0344 0/ 0 1518 240.2441 40.3720 4.438 2.889 5.025 0.000 0.0344 0/ 0 1519 240.0803 42.5325 4.392 2.989 4.875 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1520 450398.052 205880.460 61.949 MEAS Line0077 RT 1521 450398.106 205880.503 62.102 MEAS Line0077 RT 1522 450398.109 205880.527 62.084 MEAS Line0077 RT 1523 450398.044 205880.476 61.939 MEAS Line0077 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1520 239.4306 42.4412 4.404 2.989 4.892 0.000 0.0344 0/ 0 1521 239.5441 40.4607 4.473 2.921 5.045 0.000 0.0344 0/ 0 1522 240.1708 40.4606 4.450 2.906 5.027 0.000 0.0344 0/ 0 1523 240.0401 42.4840 4.396 2.988 4.882 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1524 450397.677 205880.576 61.630 MEAS Line0078 RT 1525 450398.479 205881.202 63.130 MEAS Line0078 RT 1526 450398.425 205881.282 63.134 MEAS Line0078 RT 1527 450397.614 205880.655 61.629 MEAS Line0078 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1524 244.4827 48.1432 4.379 3.267 4.573 0.000 0.0344 0/ 0 1525 250.2658 27.2154 4.972 2.285 6.073 0.000 0.0344 0/ 0 1526 252.4634 27.3644 4.988 2.312 6.077 0.000 0.0344 0/ 0 1527 246.3034 48.2827 4.397 3.292 4.572 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1528 450397.469 205880.867 61.620 MEAS Line0079 RT 1529 450398.298 205881.478 63.097 MEAS Line0079 RT 1530 450398.203 205881.565 63.078 MEAS Line0079 RT 1531 450397.929 205881.384 62.690 MEAS Line0079 RT 1532 450397.876 205881.323 62.597 MEAS Line0079 RT 1533 450397.814 205881.273 62.465 MEAS Line0079 RT 1534 450397.782 205881.254 62.400 MEAS Line0079 RT 1535 450397.746 205881.231 62.251 MEAS Line0079 RT 1536 450397.723 205881.219 62.216 MEAS Line0079 RT 1537 450397.581 205881.128 62.009 MEAS Line0079 RT 1538 450397.550 205881.097 61.936 MEAS Line0079 RT 1539 450397.441 205881.020 61.752 MEAS Line0079 RT 1540 450397.391 205880.971 61.626 MEAS Line0079 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1528 250.4940 49.0339 4.434 3.350 4.563 0.000 0.0344 0/ 0 1529 258.1013 28.3334 4.990 2.386 6.040 0.000 0.0344 0/ 0 1530 260.3636 29.2644 5.011 2.463 6.021 0.000 0.0344 0/ 0 1531 257.4936 34.4940 4.844 2.767 5.633 0.000 0.0344 0/ 0 1532 256.5114 36.0552 4.805 2.831 5.540 0.000 0.0344 0/ 0 1533 256.1008 37.4440 4.743 2.903 5.408 0.000 0.0344 0/ 0 1534 255.5748 38.3341 4.714 2.939 5.343 0.000 0.0344 0/ 0 1535 255.4203 40.0658 4.625 2.980 5.194 0.000 0.0344 0/ 0 1536 255.3539 40.3732 4.615 3.005 5.159 0.000 0.0344 0/ 0 1537 254.3729 43.5031 4.569 3.165 4.952 0.000 0.0344 0/ 0 1538 254.1453 44.5012 4.544 3.204 4.879 0.000 0.0344 0/ 0 1539 253.2824 47.3708 4.507 3.329 4.695 0.000 0.0344 0/ 0 1540 252.5538 49.2051 4.470 3.391 4.569 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1541 450397.614 205881.031 61.932 MEAS Line0080 RT 1542 450397.698 205881.088 62.072 MEAS Line0080 RT 1543 450397.679 205881.117 62.078 MEAS Line0080 RT 1544 450397.591 205881.058 61.933 MEAS Line0080 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1541 252.4646 44.2906 4.511 3.161 4.875 0.000 0.0344 0/ 0 1542 253.1906 42.2230 4.546 3.064 5.015 0.000 0.0344 0/ 0 1543 253.5646 42.2519 4.557 3.074 5.021 0.000 0.0344 0/ 0 1544 253.2120 44.3619 4.522 3.175 4.876 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1545 450397.605 205881.037 61.950 MEAS Line0081 RT 1546 450397.636 205881.078 62.113 MEAS Line0081 RT 1547 450397.664 205881.104 62.076 MEAS Line0081 RT 1548 450397.598 205881.052 61.937 MEAS Line0081 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1545 252.5528 44.2320 4.528 3.168 4.893 0.000 0.0344 0/ 0 1546 253.2829 42.3601 4.618 3.126 5.056 0.000 0.0344 0/ 0 1547 253.4743 42.3606 4.568 3.092 5.019 0.000 0.0344 0/ 0 1548 253.1325 44.3104 4.521 3.170 4.880 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1549 450397.254 205881.153 61.638 MEAS Line0082 RT 1550 450398.004 205881.739 63.011 MEAS Line0082 RT 1551 450397.937 205881.797 62.979 MEAS Line0082 RT 1552 450397.187 205881.240 61.635 MEAS Line0082 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1549 256.2659 49.5546 4.542 3.476 4.581 0.000 0.0344 0/ 0 1550 265.0240 31.3315 5.042 2.638 5.954 0.000 0.0344 0/ 0 1551 266.2354 32.2053 5.048 2.701 5.922 0.000 0.0344 0/ 0 1552 258.0454 50.1948 4.576 3.522 4.578 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1553 450397.036 205881.458 61.632 MEAS Line0083 RT 1554 450397.846 205882.080 63.112 MEAS Line0083 RT 1555 450397.795 205882.159 63.117 MEAS Line0083 RT 1556 450397.351 205881.841 62.303 MEAS Line0083 RT 1557 450397.234 205881.746 62.087 MEAS Line0083 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1553 261.5628 51.1342 4.660 3.633 4.575 0.000 0.0344 0/ 0 1554 272.1854 32.2257 5.208 2.789 6.055 0.000 0.0344 0/ 0 1555 273.5143 32.5200 5.242 2.845 6.060 0.000 0.0344 0/ 0 1556 267.4741 42.2810 4.865 3.285 5.246 0.000 0.0344 0/ 0 1557 266.1648 45.1654 4.793 3.406 5.030 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1558 450397.270 205881.618 61.373 MEAS Line0084 RT 1559 450397.305 205881.651 62.077 MEAS Line0084 RT 1560 450397.222 205881.750 62.088 MEAS Line0084 RT 1561 450397.194 205881.705 61.386 MEAS Line0084 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1558 264.0408 51.4909 4.301 3.381 4.316 0.000 0.0344 0/ 0 1559 264.3415 44.4933 4.742 3.343 5.020 0.000 0.0344 0/ 0 1560 266.2107 45.2160 4.803 3.418 5.031 0.000 0.0344 0/ 0 1561 265.3852 52.1421 4.363 3.449 4.329 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1562 450397.328 205882.182 62.334 MEAS Line0085 DE 1563 450397.323 205882.209 62.357 MEAS Line0085 DE 1564 450397.287 205882.194 62.303 MEAS Line0085 DE TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1562 273.4335 42.2742 4.907 3.313 5.277 0.000 0.0344 0/ 0 1563 274.1033 42.2007 4.928 3.319 5.300 0.000 0.0344 0/ 0 1564 273.5257 43.0336 4.912 3.354 5.246 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1565 450399.805 205879.671 61.788 MEAS Line0086 RT 1566 450399.698 205879.812 62.064 MEAS Line0086 RT 1567 450399.503 205880.071 62.476 MEAS Line0086 RT 1568 450399.363 205880.243 62.708 MEAS Line0086 RT 1569 450399.290 205880.344 62.824 MEAS Line0086 RT 1570 450399.202 205880.468 62.946 MEAS Line0086 RT 1571 450399.144 205880.546 63.016 MEAS Line0086 RT 1572 450399.123 205880.600 63.056 MEAS Line0086 RT 1573 450399.314 205880.326 63.059 MEAS Line0086 RT 1574 450399.428 205880.177 62.879 MEAS Line0086 RT 1575 450399.536 205880.032 62.677 MEAS Line0086 RT 1576 450399.564 205879.989 62.614 MEAS Line0086 RT 1577 450399.588 205879.955 62.617 MEAS Line0086 RT 1578 450399.597 205879.942 62.607 MEAS Line0086 RT 1579 450399.615 205879.919 62.591 MEAS Line0086 RT 1580 450399.622 205879.907 62.584 MEAS Line0086 RT 1581 450399.628 205879.898 62.559 MEAS Line0086 RT 1582 450399.707 205879.791 62.391 MEAS Line0086 RT 1583 450399.726 205879.764 62.353 MEAS Line0086 RT 1584 450399.706 205879.790 62.328 MEAS Line0086 RT 1585 450399.728 205879.761 62.255 MEAS Line0086 RT 1586 450399.757 205879.725 62.289 MEAS Line0086 RT 1587 450399.800 205879.671 62.190 MEAS Line0086 RT 1588 450399.804 205879.664 62.032 MEAS Line0086 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1565 199.4959 38.2643 3.925 2.441 4.731 0.000 0.0344 0/ 0 1566 203.2712 35.0205 4.091 2.349 5.007 0.000 0.0344 0/ 0 1567 210.4811 30.2345 4.362 2.207 5.419 0.000 0.0344 0/ 0 1568 216.2307 28.1145 4.531 2.141 5.651 0.000 0.0344 0/ 0 1569 219.3625 27.0753 4.618 2.106 5.767 0.000 0.0344 0/ 0 1570 223.4013 26.0511 4.712 2.072 5.889 0.000 0.0344 0/ 0 1571 226.2029 25.3428 4.769 2.059 5.959 0.000 0.0344 0/ 0 1572 227.5123 25.0743 4.796 2.037 5.999 0.000 0.0344 0/ 0 1573 218.4717 25.5052 4.828 2.105 6.002 0.000 0.0344 0/ 0 1574 213.5646 27.2311 4.691 2.158 5.822 0.000 0.0344 0/ 0 1575 209.3258 29.1802 4.544 2.224 5.620 0.000 0.0344 0/ 0 1576 208.2342 29.5739 4.502 2.248 5.557 0.000 0.0344 0/ 0 1577 207.2711 30.0904 4.514 2.267 5.560 0.000 0.0344 0/ 0 1578 207.0452 30.1754 4.509 2.275 5.550 0.000 0.0344 0/ 0 1579 206.2544 30.3236 4.501 2.288 5.534 0.000 0.0344 0/ 0 1580 206.0814 30.4010 4.499 2.295 5.527 0.000 0.0344 0/ 0 1581 205.5436 30.5324 4.480 2.300 5.502 0.000 0.0344 0/ 0 1582 203.0250 32.4436 4.372 2.365 5.334 0.000 0.0344 0/ 0 1583 202.2251 33.1235 4.349 2.382 5.296 0.000 0.0344 0/ 0 1584 203.0349 33.1232 4.319 2.366 5.271 0.000 0.0344 0/ 0 1585 202.1842 33.5747 4.269 2.385 5.198 0.000 0.0344 0/ 0 1586 201.2023 33.5716 4.309 2.407 5.232 0.000 0.0344 0/ 0 1587 199.5608 35.0540 4.248 2.442 5.133 0.000 0.0344 0/ 0 1588 199.4742 36.2446 4.123 2.447 4.975 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1589 450399.790 205879.679 61.769 MEAS Line0087 RT 1590 450399.677 205879.821 62.082 MEAS Line0087 RT 1591 450399.412 205880.177 62.623 MEAS Line0087 RT 1592 450399.254 205880.395 62.875 MEAS Line0087 RT 1593 450399.150 205880.551 63.016 MEAS Line0087 RT 1594 450399.114 205880.603 63.064 MEAS Line0087 RT 1595 450399.055 205880.562 63.064 MEAS Line0087 RT 1596 450399.130 205880.412 62.967 MEAS Line0087 RT 1597 450399.262 205880.259 62.775 MEAS Line0087 RT 1598 450399.391 205880.085 62.548 MEAS Line0087 RT 1599 450399.478 205879.956 62.381 MEAS Line0087 RT 1600 450399.603 205879.803 62.122 MEAS Line0087 RT 1601 450399.653 205879.566 61.998 MEAS Line0087 RT 1602 450399.734 205879.627 61.734 MEAS Line0087 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1589 200.1319 38.3538 3.909 2.438 4.712 0.000 0.0344 0/ 0 1590 204.0048 34.5359 4.106 2.349 5.025 0.000 0.0344 0/ 0 1591 214.1820 28.5941 4.470 2.167 5.566 0.000 0.0344 0/ 0 1592 221.1519 26.4125 4.657 2.092 5.818 0.000 0.0344 0/ 0 1593 226.1860 25.2850 4.765 2.050 5.959 0.000 0.0344 0/ 0 1594 228.0506 25.0813 4.805 2.041 6.007 0.000 0.0344 0/ 0 1595 228.1940 25.5420 4.836 2.113 6.007 0.000 0.0344 0/ 0 1596 224.0116 26.5702 4.771 2.162 5.910 0.000 0.0344 0/ 0 1597 218.4519 28.2006 4.614 2.190 5.718 0.000 0.0344 0/ 0 1598 213.2505 30.2731 4.448 2.255 5.491 0.000 0.0344 0/ 0 1599 209.5236 32.1836 4.339 2.319 5.324 0.000 0.0344 0/ 0 1600 205.2723 35.0642 4.166 2.396 5.065 0.000 0.0344 0/ 0 1601 202.1159 38.1731 4.185 2.593 4.941 0.000 0.0344 0/ 0 1602 201.0105 39.4132 3.925 2.507 4.677 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1603 450397.772 205882.442 61.745 MEAS Line0088 RT 1604 450397.848 205882.344 61.991 MEAS Line0088 RT 1605 450397.918 205882.241 62.193 MEAS Line0088 RT 1606 450397.972 205882.165 62.314 MEAS Line0088 RT 1607 450398.036 205882.074 62.462 MEAS Line0088 RT 1608 450398.111 205881.976 62.608 MEAS Line0088 RT 1609 450398.200 205881.848 62.759 MEAS Line0088 RT 1610 450398.301 205881.707 62.925 MEAS Line0088 RT 1611 450398.386 205881.591 63.040 MEAS Line0088 RT 1612 450398.409 205881.561 63.074 MEAS Line0088 RT 1613 450398.248 205881.771 63.075 MEAS Line0088 RT 1614 450398.175 205881.876 62.969 MEAS Line0088 RT 1615 450398.048 205882.058 62.733 MEAS Line0088 RT 1616 450397.931 205882.217 62.493 MEAS Line0088 RT 1617 450397.890 205882.273 62.414 MEAS Line0088 RT 1618 450397.798 205882.402 62.182 MEAS Line0088 RT 1619 450397.765 205882.448 62.150 MEAS Line0088 RT 1620 450397.772 205882.446 61.747 MEAS Line0088 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1603 279.2601 43.4421 4.195 2.901 4.688 0.000 0.0344 0/ 0 1604 277.4232 40.3723 4.317 2.811 4.934 0.000 0.0344 0/ 0 1605 275.4607 38.0654 4.421 2.729 5.136 0.000 0.0344 0/ 0 1606 274.1528 36.3249 4.481 2.668 5.257 0.000 0.0344 0/ 0 1607 272.2113 34.4435 4.561 2.599 5.405 0.000 0.0344 0/ 0 1608 270.1231 32.5553 4.640 2.522 5.551 0.000 0.0344 0/ 0 1609 267.1150 31.0331 4.722 2.436 5.702 0.000 0.0344 0/ 0 1610 263.3800 29.0755 4.821 2.347 5.868 0.000 0.0344 0/ 0 1611 260.3013 27.4616 4.890 2.278 5.983 0.000 0.0344 0/ 0 1612 259.3919 27.2402 4.911 2.260 6.017 0.000 0.0344 0/ 0 1613 265.1736 28.4516 4.974 2.393 6.018 0.000 0.0344 0/ 0 1614 267.5305 30.0130 4.915 2.459 5.912 0.000 0.0344 0/ 0 1615 272.0107 32.4544 4.779 2.586 5.676 0.000 0.0344 0/ 0 1616 275.1738 35.4038 4.652 2.713 5.436 0.000 0.0344 0/ 0 1617 276.2143 36.4305 4.615 2.760 5.357 0.000 0.0344 0/ 0 1618 278.4302 39.3521 4.501 2.868 5.125 0.000 0.0344 0/ 0 1619 279.3123 40.1431 4.502 2.908 5.093 0.000 0.0344 0/ 0 1620 279.2946 43.4322 4.197 2.901 4.690 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1621 450397.767 205882.436 61.737 MEAS Line0089 RT 1622 450397.843 205882.344 61.976 MEAS Line0089 RT 1623 450397.922 205882.229 62.199 MEAS Line0089 RT 1624 450397.997 205882.118 62.383 MEAS Line0089 RT 1625 450398.090 205881.994 62.569 MEAS Line0089 RT 1626 450398.201 205881.851 62.757 MEAS Line0089 RT 1627 450398.277 205881.748 62.889 MEAS Line0089 RT 1628 450398.368 205881.612 63.016 MEAS Line0089 RT 1629 450398.410 205881.560 63.075 MEAS Line0089 RT 1630 450398.344 205881.475 63.075 MEAS Line0089 RT 1631 450398.279 205881.591 62.972 MEAS Line0089 RT 1632 450398.205 205881.703 62.864 MEAS Line0089 RT 1633 450398.102 205881.824 62.728 MEAS Line0089 RT 1634 450397.988 205881.996 62.497 MEAS Line0089 RT 1635 450397.802 205882.248 62.060 MEAS Line0089 RT 1636 450397.789 205882.332 61.798 MEAS Line0089 RT 1637 450397.701 205882.361 61.802 MEAS Line0089 RT 1638 450397.695 205882.379 61.737 MEAS Line0089 RT 1639 450397.726 205882.403 61.735 MEAS Line0089 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1621 279.1721 43.5119 4.192 2.905 4.680 0.000 0.0344 0/ 0 1622 277.4118 40.4805 4.309 2.815 4.919 0.000 0.0344 0/ 0 1623 275.3137 38.0052 4.423 2.724 5.142 0.000 0.0344 0/ 0 1624 273.1610 35.4436 4.520 2.640 5.326 0.000 0.0344 0/ 0 1625 270.3640 33.2436 4.619 2.543 5.512 0.000 0.0344 0/ 0 1626 267.1616 31.0337 4.720 2.435 5.700 0.000 0.0344 0/ 0 1627 264.4046 29.3237 4.799 2.367 5.832 0.000 0.0344 0/ 0 1628 261.0514 28.0311 4.875 2.293 5.959 0.000 0.0344 0/ 0 1629 259.3820 27.2356 4.912 2.260 6.018 0.000 0.0344 0/ 0 1630 257.5249 28.1354 4.949 2.341 6.018 0.000 0.0344 0/ 0 1631 260.5552 29.1422 4.879 2.383 5.915 0.000 0.0344 0/ 0 1632 263.4721 30.2840 4.815 2.442 5.807 0.000 0.0344 0/ 0 1633 266.4520 32.1624 4.748 2.535 5.671 0.000 0.0344 0/ 0 1634 270.3755 34.5749 4.616 2.646 5.440 0.000 0.0344 0/ 0 1635 275.3958 40.2238 4.392 2.845 5.003 0.000 0.0344 0/ 0 1636 277.1835 42.5506 4.211 2.868 4.741 0.000 0.0344 0/ 0 1637 277.3912 43.4628 4.277 2.959 4.745 0.000 0.0344 0/ 0 1638 277.5918 44.2806 4.235 2.967 4.680 0.000 0.0344 0/ 0 1639 278.3159 44.1233 4.215 2.939 4.678 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1640 450399.867 205879.721 63.147 MEAS Line0090 RT 1641 450398.941 205880.969 63.111 MEAS Line0090 RT 1642 450397.806 205882.497 63.129 MEAS Line0090 RT 1643 450397.800 205882.502 63.276 MEAS Line0090 RT 1644 450397.825 205882.471 63.258 MEAS Line0090 RT 1645 450397.822 205882.468 63.310 MEAS Line0090 RT 1646 450398.779 205881.188 63.242 MEAS Line0090 RT 1647 450398.838 205881.107 63.286 MEAS Line0090 RT 1648 450399.708 205879.931 63.271 MEAS Line0090 RT 1649 450399.868 205879.716 63.288 MEAS Line0090 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1640 198.5024 28.0944 5.029 2.373 6.090 0.000 0.0344 0/ 0 1641 239.2754 24.0435 4.816 1.965 6.054 0.000 0.0344 0/ 0 1642 280.3729 33.0446 5.270 2.876 6.072 0.000 0.0344 0/ 0 1643 280.4207 32.1738 5.397 2.883 6.219 0.000 0.0344 0/ 0 1644 280.1019 32.0730 5.365 2.853 6.201 0.000 0.0344 0/ 0 1645 280.0633 31.5107 5.411 2.855 6.253 0.000 0.0344 0/ 0 1646 247.1150 23.5704 4.954 2.011 6.185 0.000 0.0344 0/ 0 1647 244.2431 23.3117 4.986 1.990 6.229 0.000 0.0344 0/ 0 1648 204.2642 26.0824 5.076 2.236 6.214 0.000 0.0344 0/ 0 1649 198.4547 27.2729 5.155 2.377 6.231 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1650 450399.867 205879.721 63.131 MEAS Line0091 RT 1651 450398.859 205881.069 63.104 MEAS Line0091 RT 1652 450397.801 205882.507 63.128 MEAS Line0091 RT 1653 450397.770 205882.490 63.101 MEAS Line0091 RT 1654 450398.902 205880.967 63.081 MEAS Line0091 RT 1655 450399.850 205879.711 63.100 MEAS Line0091 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1650 198.5042 28.1452 5.014 2.373 6.074 0.000 0.0344 0/ 0 1651 243.0905 24.2209 4.819 1.989 6.047 0.000 0.0344 0/ 0 1652 280.4754 33.0928 5.272 2.884 6.071 0.000 0.0344 0/ 0 1653 280.2052 33.3338 5.265 2.911 6.044 0.000 0.0344 0/ 0 1654 239.5908 24.3555 4.803 1.999 6.024 0.000 0.0344 0/ 0 1655 199.0835 28.3352 4.994 2.388 6.043 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1656 450399.828 205879.707 63.100 MEAS Line0092 RT 1657 450398.851 205880.999 63.082 MEAS Line0092 RT 1658 450397.762 205882.474 63.101 MEAS Line0092 RT 1659 450397.659 205882.385 63.090 MEAS Line0092 RT 1660 450398.705 205880.949 63.105 MEAS Line0092 RT 1661 450399.702 205879.612 63.099 MEAS Line0092 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1656 199.3633 28.4036 4.999 2.399 6.043 0.000 0.0344 0/ 0 1657 241.2912 24.5419 4.816 2.028 6.025 0.000 0.0344 0/ 0 1658 280.0037 33.3631 5.267 2.916 6.044 0.000 0.0344 0/ 0 1659 277.5950 34.2731 5.307 3.003 6.033 0.000 0.0344 0/ 0 1660 242.1033 26.2430 4.902 2.180 6.048 0.000 0.0344 0/ 0 1661 201.3431 30.0036 5.063 2.533 6.042 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1662 450399.703 205879.891 63.388 MEAS Line0093 RT 1663 450401.439 205881.132 66.571 MEAS Line0093 RT 1664 450401.412 205881.174 66.571 MEAS Line0093 RT 1665 450399.663 205879.941 63.371 MEAS Line0093 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1662 204.0802 25.5657 5.198 2.275 6.331 0.000 0.0344 0/ 0 1663 136.0132 8.2414 7.942 1.161 9.514 0.000 0.0344 0/ 0 1664 135.2951 8.0319 7.936 1.112 9.514 0.000 0.0344 0/ 0 1665 205.3454 25.4440 5.170 2.246 6.314 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1666 450399.495 205880.167 63.358 MEAS Line0094 RT 1667 450401.193 205881.440 66.547 MEAS Line0094 RT 1668 450401.168 205881.497 66.514 MEAS Line0094 RT 1669 450399.465 205880.215 63.358 MEAS Line0094 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1666 212.1805 24.3759 5.109 2.129 6.301 0.000 0.0344 0/ 0 1667 133.1639 5.3632 7.870 0.769 9.490 0.000 0.0344 0/ 0 1668 131.2000 5.1303 7.833 0.712 9.457 0.000 0.0344 0/ 0 1669 213.4101 24.2320 5.099 2.106 6.301 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1670 450399.442 205880.220 63.398 MEAS Line0095 RT 1671 450400.069 205880.707 64.516 MEAS Line0095 RT 1672 450400.051 205880.764 64.557 MEAS Line0095 RT 1673 450399.408 205880.265 63.387 MEAS Line0095 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1670 214.1652 24.1727 5.139 2.114 6.341 0.000 0.0344 0/ 0 1671 204.0604 13.2304 5.964 1.381 7.459 0.000 0.0344 0/ 0 1672 205.4916 12.5319 5.994 1.337 7.500 0.000 0.0344 0/ 0 1673 215.4426 24.1005 5.122 2.097 6.330 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1674 450399.272 205880.464 63.386 MEAS Line0096 RT 1675 450400.992 205881.694 66.626 MEAS Line0096 RT 1676 450400.967 205881.767 66.599 MEAS Line0096 RT 1677 450399.231 205880.512 63.382 MEAS Line0096 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1674 222.0959 23.2733 5.093 2.027 6.329 0.000 0.0344 0/ 0 1675 127.1324 3.1532 7.924 0.450 9.569 0.000 0.0344 0/ 0 1676 120.5639 2.4940 7.895 0.389 9.542 0.000 0.0344 0/ 0 1677 223.5625 23.2405 5.086 2.020 6.325 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1678 450399.061 205880.755 63.380 MEAS Line0097 RT 1679 450400.769 205882.000 66.523 MEAS Line0097 RT 1680 450400.748 205882.047 66.515 MEAS Line0097 RT 1681 450399.029 205880.803 63.356 MEAS Line0097 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1678 232.2122 23.0243 5.071 1.985 6.323 0.000 0.0344 0/ 0 1679 256.2044 358.5826 7.810 0.140 9.466 0.000 0.0344 0/ 0 1680 235.0956 358.5820 7.802 0.140 9.458 0.000 0.0344 0/ 0 1681 234.0118 23.0716 5.047 1.982 6.299 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1682 450399.595 205881.593 64.763 MEAS Line0098 RT 1683 450398.846 205881.036 63.382 MEAS Line0098 RT 1684 450398.811 205881.087 63.383 MEAS Line0098 RT 1685 450400.041 205881.983 65.657 MEAS Line0098 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1682 250.1044 10.2016 6.149 1.103 7.706 0.000 0.0344 0/ 0 1683 242.2932 23.2053 5.084 2.015 6.325 0.000 0.0344 0/ 0 1684 244.1320 23.2546 5.088 2.023 6.326 0.000 0.0344 0/ 0 1685 271.3511 4.5242 6.968 0.593 8.600 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1686 450398.629 205881.334 63.367 MEAS Line0099 RT 1687 450400.346 205882.571 66.583 MEAS Line0099 RT 1688 450400.311 205882.618 66.577 MEAS Line0099 RT 1689 450398.595 205881.383 63.363 MEAS Line0099 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1686 252.2811 24.1818 5.105 2.101 6.310 0.000 0.0344 0/ 0 1687 334.3613 4.5116 7.897 0.668 9.526 0.000 0.0344 0/ 0 1688 333.4316 5.1646 7.896 0.727 9.520 0.000 0.0344 0/ 0 1689 254.0038 24.3045 5.109 2.120 6.306 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1690 450398.409 205881.626 63.380 MEAS Line0100 RT 1691 450400.116 205882.863 66.578 MEAS Line0100 RT 1692 450400.085 205882.907 66.593 MEAS Line0100 RT 1693 450398.383 205881.667 63.373 MEAS Line0100 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1690 261.1653 25.4448 5.181 2.250 6.323 0.000 0.0344 0/ 0 1691 330.0116 7.2944 7.932 1.035 9.521 0.000 0.0344 0/ 0 1692 329.4451 7.5157 7.954 1.089 9.536 0.000 0.0344 0/ 0 1693 262.2428 25.5832 5.182 2.270 6.316 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1694 450398.241 205881.907 63.289 MEAS Line0101 RT 1695 450399.897 205883.161 66.605 MEAS Line0101 RT 1696 450399.871 205883.201 66.605 MEAS Line0101 RT 1697 450398.161 205881.955 63.393 MEAS Line0101 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1694 268.3401 27.3630 5.163 2.393 6.232 0.000 0.0344 0/ 0 1695 328.2038 10.0439 8.015 1.402 9.548 0.000 0.0344 0/ 0 1696 328.1703 10.2456 8.023 1.450 9.548 0.000 0.0344 0/ 0 1697 269.4345 27.5048 5.292 2.472 6.336 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1698 450397.979 205882.209 63.382 MEAS Line0102 RT 1699 450399.677 205883.443 66.602 MEAS Line0102 RT 1700 450399.649 205883.488 66.612 MEAS Line0102 RT 1701 450397.945 205882.256 63.397 MEAS Line0102 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1698 275.1244 29.4311 5.375 2.665 6.325 0.000 0.0344 0/ 0 1699 327.0406 12.3353 8.082 1.758 9.545 0.000 0.0344 0/ 0 1700 327.0518 12.5459 8.103 1.811 9.555 0.000 0.0344 0/ 0 1701 276.0806 29.5952 5.407 2.704 6.340 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1702 450397.928 205882.572 63.551 MEAS Line0103 RT 1703 450398.019 205882.636 63.713 MEAS Line0103 RT 1704 450398.133 205882.734 63.931 MEAS Line0103 RT 1705 450398.286 205882.713 64.099 MEAS Line0103 RT 1706 450398.430 205882.685 64.228 MEAS Line0103 RT 1707 450398.554 205882.656 64.356 MEAS Line0103 RT 1708 450398.703 205882.606 64.483 MEAS Line0103 RT 1709 450398.831 205882.554 64.585 MEAS Line0103 RT 1710 450399.023 205882.463 64.741 MEAS Line0103 RT 1711 450399.162 205882.401 64.845 MEAS Line0103 RT 1712 450399.262 205882.353 64.923 MEAS Line0103 RT 1713 450399.336 205882.242 64.908 MEAS Line0103 RT 1714 450399.442 205882.090 64.887 MEAS Line0103 RT 1715 450399.282 205882.176 64.766 MEAS Line0103 RT 1716 450399.027 205882.309 64.586 MEAS Line0103 RT 1717 450398.876 205882.364 64.461 MEAS Line0103 RT 1718 450398.697 205882.439 64.306 MEAS Line0103 RT 1719 450398.497 205882.486 64.120 MEAS Line0103 RT 1720 450398.247 205882.533 63.870 MEAS Line0103 RT 1721 450398.070 205882.545 63.691 MEAS Line0103 RT 1722 450398.016 205882.556 63.639 MEAS Line0103 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1702 282.3611 29.4857 5.575 2.772 6.494 0.000 0.0344 0/ 0 1703 284.2124 28.2128 5.681 2.698 6.656 0.000 0.0344 0/ 0 1704 287.0254 26.3731 5.836 2.615 6.874 0.000 0.0344 0/ 0 1705 287.3736 24.3410 5.922 2.462 7.042 0.000 0.0344 0/ 0 1706 288.0313 22.4739 5.981 2.317 7.171 0.000 0.0344 0/ 0 1707 288.1929 21.1258 6.052 2.190 7.299 0.000 0.0344 0/ 0 1708 288.1930 19.2455 6.117 2.033 7.426 0.000 0.0344 0/ 0 1709 288.0329 17.5324 6.169 1.895 7.528 0.000 0.0344 0/ 0 1710 287.0711 15.3645 6.258 1.684 7.684 0.000 0.0344 0/ 0 1711 286.2527 14.0224 6.320 1.533 7.788 0.000 0.0344 0/ 0 1712 285.4252 12.5454 6.370 1.424 7.866 0.000 0.0344 0/ 0 1713 281.5720 12.0503 6.334 1.326 7.851 0.000 0.0344 0/ 0 1714 275.5259 10.5846 6.288 1.198 7.830 0.000 0.0344 0/ 0 1715 278.4755 12.4330 6.204 1.367 7.709 0.000 0.0344 0/ 0 1716 282.0107 15.3714 6.098 1.642 7.529 0.000 0.0344 0/ 0 1717 282.4430 17.2426 6.022 1.802 7.404 0.000 0.0344 0/ 0 1718 283.4207 19.3704 5.936 1.993 7.249 0.000 0.0344 0/ 0 1719 283.3927 22.0723 5.836 2.198 7.063 0.000 0.0344 0/ 0 1720 283.2106 25.2604 5.709 2.452 6.813 0.000 0.0344 0/ 0 1721 282.4249 27.4958 5.628 2.628 6.634 0.000 0.0344 0/ 0 1722 282.4028 28.3424 5.608 2.682 6.582 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1723 450400.002 205879.778 63.545 MEAS Line0104 RT 1724 450400.061 205880.037 63.828 MEAS Line0104 RT 1725 450400.095 205880.249 64.055 MEAS Line0104 RT 1726 450400.104 205880.658 64.415 MEAS Line0104 RT 1727 450400.086 205880.887 64.593 MEAS Line0104 RT 1728 450400.076 205880.989 64.667 MEAS Line0104 RT 1729 450400.051 205881.133 64.760 MEAS Line0104 RT 1730 450400.028 205881.253 64.838 MEAS Line0104 RT 1731 450399.987 205881.370 64.895 MEAS Line0104 RT 1732 450400.090 205881.242 64.899 MEAS Line0104 RT 1733 450400.208 205881.084 64.894 MEAS Line0104 RT 1734 450400.235 205880.939 64.801 MEAS Line0104 RT 1735 450400.263 205880.791 64.704 MEAS Line0104 RT 1736 450400.272 205880.659 64.599 MEAS Line0104 RT 1737 450400.277 205880.487 64.455 MEAS Line0104 RT 1738 450400.280 205880.273 64.288 MEAS Line0104 RT 1739 450400.262 205880.205 64.209 MEAS Line0104 RT 1740 450400.256 205880.166 64.169 MEAS Line0104 RT 1741 450400.262 205880.129 64.145 MEAS Line0104 RT 1742 450400.253 205880.087 64.104 MEAS Line0104 RT 1743 450400.247 205880.010 64.030 MEAS Line0104 RT 1744 450400.232 205879.941 63.945 MEAS Line0104 RT 1745 450400.130 205879.864 63.773 MEAS Line0104 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1723 196.0525 25.1450 5.342 2.278 6.488 0.000 0.0344 0/ 0 1724 196.3023 21.2917 5.496 2.013 6.771 0.000 0.0344 0/ 0 1725 197.2315 18.3721 5.636 1.800 6.998 0.000 0.0344 0/ 0 1726 202.0120 13.5436 5.874 1.412 7.358 0.000 0.0344 0/ 0 1727 206.5059 11.3812 6.002 1.211 7.536 0.000 0.0344 0/ 0 1728 209.3914 10.4225 6.058 1.126 7.610 0.000 0.0344 0/ 0 1729 214.5346 9.3239 6.131 1.017 7.703 0.000 0.0344 0/ 0 1730 220.1646 8.4133 6.195 0.936 7.781 0.000 0.0344 0/ 0 1731 227.1330 8.0600 6.243 0.880 7.838 0.000 0.0344 0/ 0 1732 216.4829 8.2004 6.251 0.906 7.842 0.000 0.0344 0/ 0 1733 205.4126 9.0053 6.257 0.980 7.837 0.000 0.0344 0/ 0 1734 201.0849 10.1539 6.186 1.102 7.744 0.000 0.0344 0/ 0 1735 197.2852 11.3737 6.116 1.233 7.647 0.000 0.0344 0/ 0 1736 195.2654 12.5848 6.040 1.357 7.542 0.000 0.0344 0/ 0 1737 193.3044 14.5101 5.939 1.522 7.398 0.000 0.0344 0/ 0 1738 191.4609 17.1436 5.836 1.730 7.231 0.000 0.0344 0/ 0 1739 191.5419 18.0825 5.782 1.800 7.152 0.000 0.0344 0/ 0 1740 191.4944 18.3833 5.757 1.840 7.112 0.000 0.0344 0/ 0 1741 191.2419 19.0249 5.746 1.875 7.088 0.000 0.0344 0/ 0 1742 191.2517 19.3530 5.721 1.918 7.047 0.000 0.0344 0/ 0 1743 191.0923 20.3351 5.678 1.994 6.973 0.000 0.0344 0/ 0 1744 191.1051 21.3253 5.624 2.066 6.888 0.000 0.0344 0/ 0 1745 193.2727 23.0822 5.501 2.162 6.716 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1746 450400.825 205880.344 64.905 MEAS Line0105 RT 1747 450400.079 205881.365 64.881 MEAS Line0105 RT 1748 450399.778 205881.751 64.865 MEAS Line0105 RT 1749 450399.457 205882.196 64.879 MEAS Line0105 RT 1750 450398.711 205883.171 64.899 MEAS Line0105 RT 1751 450398.793 205883.234 65.031 MEAS Line0105 RT 1752 450399.651 205882.101 64.992 MEAS Line0105 RT 1753 450399.846 205881.830 64.995 MEAS Line0105 RT 1754 450400.047 205881.560 64.998 MEAS Line0105 RT 1755 450400.242 205881.320 64.997 MEAS Line0105 RT 1756 450400.406 205881.089 64.990 MEAS Line0105 RT 1757 450400.488 205880.974 65.006 MEAS Line0105 RT 1758 450400.573 205880.853 65.013 MEAS Line0105 RT 1759 450400.699 205880.670 65.020 MEAS Line0105 RT 1760 450400.736 205880.596 65.004 MEAS Line0105 RT 1761 450400.910 205880.368 65.020 MEAS Line0105 RT 1762 450400.907 205880.353 65.004 MEAS Line0105 RT 1763 450400.884 205880.349 64.975 MEAS Line0105 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1746 173.1530 14.4705 6.403 1.634 7.848 0.000 0.0344 0/ 0 1747 222.3840 7.3332 6.221 0.818 7.824 0.000 0.0344 0/ 0 1748 255.5036 8.0930 6.214 0.882 7.808 0.000 0.0344 0/ 0 1749 280.5959 10.5956 6.280 1.198 7.822 0.000 0.0344 0/ 0 1750 302.0323 20.0814 6.587 2.268 7.842 0.000 0.0344 0/ 0 1751 304.3222 19.2843 6.700 2.234 7.974 0.000 0.0344 0/ 0 1752 277.4507 8.5822 6.356 0.991 7.935 0.000 0.0344 0/ 0 1753 260.0917 7.1501 6.332 0.799 7.938 0.000 0.0344 0/ 0 1754 235.1127 6.2831 6.324 0.713 7.941 0.000 0.0344 0/ 0 1755 211.0833 6.5130 6.328 0.756 7.940 0.000 0.0344 0/ 0 1756 194.3055 8.1336 6.341 0.907 7.933 0.000 0.0344 0/ 0 1757 188.1846 9.0339 6.372 1.003 7.949 0.000 0.0344 0/ 0 1758 183.0542 10.0250 6.397 1.116 7.956 0.000 0.0344 0/ 0 1759 177.0626 11.3824 6.439 1.299 7.963 0.000 0.0344 0/ 0 1760 175.4254 12.1942 6.438 1.375 7.947 0.000 0.0344 0/ 0 1761 170.1019 14.2601 6.512 1.623 7.963 0.000 0.0344 0/ 0 1762 170.2130 14.3518 6.499 1.637 7.947 0.000 0.0344 0/ 0 1763 171.1001 14.3932 6.472 1.638 7.918 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1764 450400.816 205880.301 64.918 MEAS Line0106 RT 1765 450400.454 205880.824 64.886 MEAS Line0106 RT 1766 450400.218 205881.139 64.888 MEAS Line0106 RT 1767 450399.934 205881.519 64.882 MEAS Line0106 RT 1768 450399.653 205881.905 64.875 MEAS Line0106 RT 1769 450399.180 205882.542 64.891 MEAS Line0106 RT 1770 450398.695 205883.163 64.896 MEAS Line0106 RT 1771 450398.654 205883.106 64.885 MEAS Line0106 RT 1772 450399.275 205882.335 64.923 MEAS Line0106 RT 1773 450399.535 205881.939 64.942 MEAS Line0106 RT 1774 450399.855 205881.510 64.937 MEAS Line0106 RT 1775 450400.217 205881.081 64.897 MEAS Line0106 RT 1776 450400.292 205880.964 64.923 MEAS Line0106 RT 1777 450400.359 205880.826 64.942 MEAS Line0106 RT 1778 450400.581 205880.519 64.948 MEAS Line0106 RT 1779 450400.735 205880.266 64.956 MEAS Line0106 RT 1780 450400.774 205880.294 64.912 MEAS Line0106 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1764 173.4351 15.0651 6.426 1.676 7.861 0.000 0.0344 0/ 0 1765 188.5407 10.3713 6.279 1.157 7.829 0.000 0.0344 0/ 0 1766 206.3633 8.3137 6.243 0.926 7.831 0.000 0.0344 0/ 0 1767 237.2313 7.4002 6.223 0.830 7.825 0.000 0.0344 0/ 0 1768 266.2205 9.0312 6.238 0.982 7.818 0.000 0.0344 0/ 0 1769 291.3452 14.1140 6.372 1.562 7.834 0.000 0.0344 0/ 0 1770 301.4018 20.1316 6.588 2.277 7.839 0.000 0.0344 0/ 0 1771 299.5513 20.1815 6.580 2.283 7.828 0.000 0.0344 0/ 0 1772 285.1057 12.4602 6.366 1.407 7.866 0.000 0.0344 0/ 0 1773 268.3344 10.0018 6.324 1.099 7.885 0.000 0.0344 0/ 0 1774 239.3247 8.1502 6.288 0.902 7.880 0.000 0.0344 0/ 0 1775 205.1021 8.5951 6.260 0.979 7.840 0.000 0.0344 0/ 0 1776 198.4831 9.4050 6.299 1.059 7.866 0.000 0.0344 0/ 0 1777 193.2911 10.4016 6.338 1.174 7.885 0.000 0.0344 0/ 0 1778 182.0418 13.0456 6.400 1.449 7.891 0.000 0.0344 0/ 0 1779 176.3436 15.1556 6.470 1.704 7.899 0.000 0.0344 0/ 0 1780 175.1101 15.0937 6.421 1.679 7.855 0.000 0.0344 0/ 0 Lines ----- Point ID E N H Class Point Code Line ID Line Code 1781 450399.964 205879.576 62.199 MEAS Line0107 RT 1782 450399.961 205879.575 62.577 MEAS Line0107 RT 1783 450399.916 205879.643 62.520 MEAS Line0107 RT 1784 450399.909 205879.647 62.837 MEAS Line0107 RT 1785 450399.865 205879.709 62.828 MEAS Line0107 RT 1786 450399.863 205879.698 61.821 MEAS Line0107 RT TPS Measurements ---------------- Point ID Hz V SD HD dH hr Add. Const atm/geom ppm 1781 195.3744 35.2746 4.279 2.483 5.142 0.000 0.0344 0/ 0 1782 195.4130 32.4443 4.593 2.484 5.520 0.000 0.0344 0/ 0 1783 197.0841 32.3457 4.516 2.432 5.463 0.000 0.0344 0/ 0 1784 197.1921 30.3045 4.786 2.430 5.780 0.000 0.0344 0/ 0 1785 198.4625 30.0611 4.755 2.385 5.771 0.000 0.0344 0/ 0 1786 198.4504 37.3811 3.924 2.396 4.764 0.000 0.0344 0/ 0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++ System 1200 Data Export - File Endtotalopenstation-0.5.3/sample_data/leica_tcr_705000066400000000000000000000122311477035261600216550ustar00rootroot00000000000000Oxford Archaeology Survey. JOB SCRAS01 OPERATOR MB DATE 08/02/05 INS. NO. 656205 INS. TYPE. TCR705 SETUP SN 1000 IH 0.000 Orientation Station 0 - - - - - - - - - - - - - - - - - - - 100, 999.630, 1002.620, 98.406, WALL01 -------- 101, 1002.825, 999.529, 98.430, WALL01 -------- 102, 1000.723, 997.323, 98.437, WALL01 -------- 103, 997.506, 1000.438, 98.402, WALL01 -------- 104, 998.095, 1001.082, 98.404, WALL01 -------- 105, 997.298, 1001.882, 98.366, WALL01 -------- 106, 998.144, 1002.739, 98.361, WALL01 -------- 107, 998.964, 1001.987, 98.376, WALL01 -------- 1001, 1.00, 1.00, 1.00, WALL01 -------- 101, 1.00, 1.00, 1.00, WALL01 -------- 105, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 107, 1.00, 1.00, 1.00, WALL01 -------- SETUP SN 1002 IH 0.000 Orientation Station 105 - - - - - - - - - - - - - - - - - - - 105, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 107, 1.00, 1.00, 1.00, WALL01 -------- 1001, 1.00, 1.00, 1.00, WALL01 -------- 1001, 1.00, 1.00, 1.00, WALL01 -------- 105, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 107, 1.00, 1.00, 1.00, WALL01 -------- SETUP SN 1003 IH 0.000 Orientation Station 105 - - - - - - - - - - - - - - - - - - - 107, 1.00, 1.00, 1.00, WALL01 -------- 106, 1.00, 1.00, 1.00, WALL01 -------- 103, 1.00, 1.00, 1.00, WALL01 -------- 103, 1.00, 1.00, 1.00, WALL01 -------- 107, 1.00, 1.00, 1.00, WALL01 -------- 1001, 1.00, 1.00, 1.00, WALL01 -------- 110, 998.284, 1001.291, 98.372, WALL01 -------- 111, 997.428, 1002.145, 98.362, WALL01 -------- 112, 997.428, 1002.145, 98.361, WALL01 -------- 113, 996.782, 1001.499, 98.399, WALL01 -------- 114, 993.626, 1004.658, 98.478, WALL01 -------- 115, 997.102, 1008.034, 98.420, WALL01 -------- 116, 1000.490, 1004.700, 98.335, WALL01 -------- 117, 999.403, 1004.069, 98.341, WALL01 -------- 118, 998.309, 1003.011, 98.356, WALL01 -------- 119, 999.094, 1002.199, 98.365, WALL01 -------- 120, 1000.812, 997.443, 98.412, WALL01 -------- 112, 1.00, 1.00, 1.00, WALL01 -------- 112, 1.00, 1.00, 1.00, WALL01 -------- 114, 1.00, 1.00, 1.00, WALL01 -------- 115, 1.00, 1.00, 1.00, WALL01 -------- SETUP SN 1004 IH 0.000 Orientation Station 114 - - - - - - - - - - - - - - - - - - - 121, 1000.480, 1004.705, 98.336, WALL03 -------- 122, 1003.504, 1001.709, 95.307, WALL03 -------- 123, 1002.440, 1001.125, 95.557, WALL03 -------- 124, 1002.772, 1000.716, 95.230, WALL03 -------- 125, 999.646, 1003.845, 98.358, WALL03 -------- 126, 999.422, 1004.066, 98.357, WALL03 -------- 127, 1004.293, 1000.955, 95.362, WALL03 -------- 128, 1001.149, 1004.006, 100.368, WALL03 -------- 129, 1000.236, 1003.246, 100.270, WALL03 -------- 130, 1001.070, 1004.095, 100.267, WALL03 -------- 127, 1.00, 1.00, 1.00, WALL03 -------- 130, 1.00, 1.00, 1.00, WALL03 -------- 129, 1.00, 1.00, 1.00, WALL03 -------- SETUP SN 1004 IH 0.000 Orientation Station 130 - - - - - - - - - - - - - - - - - - - 140, 1000.274, 1003.227, 100.365, WALL04 -------- 141, 1001.112, 1004.038, 100.342, WALL04 -------- 142, 1002.522, 1000.962, 96.505, WALL04 -------- 143, 1003.386, 1001.847, 95.304, WALL04 -------- 144, 1004.245, 1000.981, 95.842, WALL04 -------- 145, 1002.963, 999.685, 95.974, WALL04 -------- 146, 1002.118, 1000.557, 96.021, WALL04 -------- 147, 1001.995, 998.707, 95.509, WALL04 -------- 148, 1000.786, 997.542, 95.212, WALL04 -------- T1, 1002.324, 998.364, 96.479, WALL04 -------- T2, 1003.759, 1000.497, 96.586, WALL04 -------- T3, 1001.766, 998.503, 96.475, WALL04 -------- T4, 1001.972, 998.705, 96.932, WALL04 -------- File End. totalopenstation-0.5.3/sample_data/nikon_raw_v200/000077500000000000000000000000001477035261600221515ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/nikon_raw_v200/nikon_dtm.tops000066400000000000000000000022761477035261600250510ustar00rootroot00000000000000CO,Nikon RAW data format V2.00 CO,HOME CO,Description: CO,Client: CO,Comments: CO,Downloaded 06-Mar-2015 14:25:38 CO,Software: Standard software version: 1.01 CO,Instrument: Nikon DTM-330 CO,Dist Units: Metres CO,Angle Units: DDDMMSS CO,Zero azimuth: North CO,Zero VA: Zenith CO,Coord Order: NEZ CO,HA Raw data: Azimuth CO,Tilt Correction: VA:OFF HA:OFF CO, HOME Created 03-Mar-2015 16:00:43 CO,Temp:24C Press:1013hPa Prism:30 03-Mar-2015 16:08:12 CO,HA set in Quick Station ST,1,,,,1.286,0.0000,0.0000 *SS,2,1.800,,0.0000,88.5537,16:13:53,HC SS,2,1.800,30.188,0.0000,88.5655,16:21:20,HC CO,O/S MSR:2 30.188 0.0001 88.5655 SS,3,1.800,29.613,329.1428,89.1807,16:29:27,HC CO,O/S MSR:3 29.613 329.1444 89.1807 SS,4,1.515,25.237,164.3051,91.4848,16:36:11,HUB CO,Temp:24C Press:1013hPa Prism:30 03-Mar-2015 16:54:45 ST,4,,1,,1.242,344.3051,344.3051 *SS,5,1.515,48.591,142.4339,88.5934,17:10:11,HUB CO,Temp:24C Press:1013hPa Prism:30 03-Mar-2015 17:26:40 ST,4,,1,,1.245,344.3051,344.3051 SS,5,1.515,48.564,142.5026,88.5933,17:35:41,HUB CO,Temp:24C Press:1013hPa Prism:30 03-Mar-2015 17:59:17 ST,5,,4,,1.278,322.5024,322.5024 SS,6,1.515,87.357,163.3424,86.1704,18:15:08,GATE CO,O/S MSR:6 87.340 163.3227 86.2719  totalopenstation-0.5.3/sample_data/nikon_raw_v200/nikon_npl_350000066400000000000000000000023661477035261600244610ustar00rootroot00000000000000CO,Nikon RAW data format V2.00 CO,PROVE CO,Description: CO,Client: CO,Comments: CO,Downloaded 25-Feb-2008 12:11:32 CO,Software: Standard software version: 1.02 CO,Instrument: Nikon NPL-350 CO,Dist Units: Metres CO,Angle Units: Gons CO,Zero azimuth: North CO,Zero VA: Zenith CO,Coord Order: NEZ CO,HA Raw data: Azimuth CO,Tilt Correction: VA:ON HA:ON CO, PROVE Created 25-Feb-2008 11:20:11 CO,Temp:15C Press:1013hPa Prism:0 25-Feb-2008 11:24:02 CO,HA set in Quick Station ST,1000,,,,1.500,0.0000,0.0000 SS,1001,3.610,5.74,0.0000,108.7690,11:24:32, SS,1002,3.610,7.34,69.3716,102.932,SPIGOLO SS,1003,3.610,6.20,167.5786,102.0498,11:25:34,QUOTA CO,Temp:15C Press:1013hPa Prism:0 25-Feb-2008 11:28:22 CO,HA set in Quick Station ST,2000,,,,1.500,0.0000,0.0000 SS,2001,3.610,3.02,266.8884,116.2412,11:28:58, SS,2002,3.610,8.34,323.7412,102.3770,11:29:41,SPIGOLO SS,2003,3.610,10.08,391.5272,101.0924,11:30:08,SPIGOLO SS,3001,3.610,3.09,266.0714,92.2230,11:59:50,SPIGOLO SS,3002,3.610,12.84,7.1536,101.7790,12:00:28,SPIGOLO SS,3003,3.610,3.09,266.0730,92.2200,12:00:47,SPIGOLO SS,3004,3.610,12.84,7.1422,101.7782,12:01:05,SPIGOLO SS,3005,3.610,3.09,266.0726,92.2208,12:01:31,SPIGOLO SS,3006,3.610,12.84,7.1532,101.7772,12:02:04,SPIGOLO totalopenstation-0.5.3/sample_data/nikon_raw_v200/nikon_raw_v200.tops000066400000000000000000000107211477035261600256170ustar00rootroot00000000000000CO,Nikon RAW data format V2.00 CO,FATE2010 CO,Description: CO,Client: CO,Comments: CO,Downloaded 08-Feb-2010 11:17:17 CO,Software: Pre-install version: 1.02 CO,Instrument: Nikon NPL-352 CO,Dist Units: Metres CO,Angle Units: Gons CO,Zero azimuth: North CO,Zero VA: Zenith CO,Coord Order: NEZ CO,HA Raw data: Azimuth CO,Tilt Correction: VA:ON HA:ON CO, FATE2010 Created 04-Feb-2010 13:41:40 MP,1,,0.000,0.000,0.000,ST CO,Temp:20C Press:760mmHg Prism:0 04-Feb-2010 13:47:08 ST,1,,,,1.430,0.0000,0.0000 F1,,1.500,,0.0000,110.5344,13:47:08 SS,2,1.500,8.986,107.9916,102.3376,14:00:04,P SS,3,1.500,7.706,110.4894,103.4372,14:00:51,P SS,4,1.500,7.620,105.5898,104.3960,14:01:30,P SS,5,1.700,7.162,105.5474,103.7754,14:02:48,P SS,6,1.500,8.539,105.0304,107.6552,14:04:43,P SS,7,0.000,8.318,111.0776,109.4876,14:06:02,P SS,8,1.500,7.085,108.6492,101.0370,14:38:22,P SS,9,1.500,7.592,112.1108,100.0146,14:38:58,P SS,10,1.500,7.616,114.3392,98.3016,14:40:03,P SS,11,1.500,8.227,118.5482,97.8578,14:40:53,P SS,12,1.500,8.364,111.9586,96.9256,14:41:44,P SS,13,1.500,8.233,120.1832,93.9826,14:47:20,P SS,14,1.500,7.438,116.4324,95.2816,14:48:15,P SS,15,1.500,7.266,115.0854,99.0626,14:49:59,P SS,16,1.500,6.622,112.4368,99.6468,14:50:19,P SS,17,1.500,7.957,121.7916,93.7194,14:52:29,P SS,18,1.500,7.956,134.1078,93.9716,14:53:09,P SS,19,1.500,7.515,126.2412,94.4298,14:54:15,P SS,20,1.500,6.711,130.6606,96.5976,14:55:03,P SS,21,1.500,6.857,118.6338,96.0578,14:56:00,P SS,22,1.500,6.433,117.1546,100.2926,14:56:52,P SS,23,0.000,8.399,127.3100,103.7122,14:58:30,P SS,24,0.000,8.351,128.5522,100.1180,14:59:08,P SS,25,0.000,8.270,134.3588,101.1110,14:59:55,P SS,26,0.000,8.274,133.8002,104.4368,15:00:26,P SS,27,1.500,6.511,124.0842,99.5534,15:03:09,P SS,28,1.500,5.974,122.1514,101.6522,15:04:23,P SS,29,0.000,8.962,137.1236,98.3588,15:07:38,P SS,30,0.000,8.934,136.3310,102.4348,15:08:05,P SS,31,0.000,9.184,144.2620,103.4046,15:08:31,P SS,32,0.000,9.387,149.0120,103.4142,15:08:59,P SS,33,0.000,9.362,148.7352,99.7136,15:09:30,P SS,34,0.000,9.219,144.4228,99.5388,15:09:53,P SS,35,0.000,7.001,138.7436,114.7446,15:11:07,P SS,36,1.500,5.851,131.9558,102.5750,15:22:52,P SS,37,1.500,6.328,133.0952,101.2756,15:23:32,P SS,38,1.500,5.808,135.2582,104.2262,15:24:29,P SS,39,1.500,6.923,134.4702,99.9614,15:25:18,P SS,40,1.500,6.879,139.7302,100.1380,15:25:55,P SS,41,1.500,7.486,140.0246,98.6866,15:26:40,P SS,42,1.500,7.661,135.3510,97.9216,15:28:03,P SS,43,1.500,8.199,135.9068,96.7188,15:28:54,P SS,44,1.500,8.225,143.5888,97.0652,15:29:50,P SS,45,1.500,7.827,145.0258,97.5600,15:31:08,P SS,46,1.500,7.860,147.3556,97.3464,15:31:44,P SS,47,1.500,8.662,147.2374,95.8390,15:32:27,P SS,48,1.500,8.568,144.4556,95.8270,15:33:11,P SS,49,1.500,8.729,143.4210,93.5904,15:34:01,P SS,50,1.500,8.339,136.3862,93.3592,15:34:38,P SS,51,1.500,7.429,141.7392,102.7698,15:36:02,P SS,52,1.500,6.913,140.8836,104.3052,15:36:41,P SS,53,1.500,7.479,149.9490,103.0626,15:37:25,P SS,54,1.500,6.938,149.6110,104.9004,15:38:12,P SS,55,1.700,6.718,143.6064,104.5304,15:39:06,P SS,56,1.700,6.734,138.1288,104.4754,15:39:44,P CO,HT changed at PT=56 Old HT=1.500m CO,OLD=56 X-3.787 Y5.548 Z-0.543 CO,HT changed at PT=55 Old HT=1.500m CO,OLD=55 X-4.239 Y5.190 Z-0.548 SS,57,1.500,6.132,137.6602,109.0124,15:42:43,P SS,58,1.500,8.966,150.7654,93.9858,15:44:05,P SS,59,1.500,9.739,151.4094,93.7238,15:44:39,P SS,60,1.500,9.919,155.4866,95.0466,15:45:26,P SS,61,1.500,8.980,152.3926,95.1246,15:46:14,P SS,62,1.500,9.107,155.8314,95.5764,15:47:06,P SS,63,1.850,9.150,156.6374,93.9602,15:50:12,P SS,64,0.000,9.292,157.4092,107.9238,15:52:21,P SS,65,1.500,10.059,160.4978,95.4160,15:54:36,P SS,66,1.500,9.330,161.8984,97.0678,15:55:51,P SS,67,1.500,9.997,161.8576,99.2174,15:56:34,P SS,68,1.500,10.786,167.3566,98.9458,15:57:09,P SS,69,1.500,10.240,167.1484,99.9180,15:57:48,P SS,70,1.780,9.705,169.0404,99.2786,15:59:17,P CO,HT changed at PT=70 Old HT=1.500m CO,OLD=70 X-8.579 Y4.536 Z0.040 SS,71,1.500,9.408,162.8840,100.4778,16:00:34,P SS,72,1.750,9.183,163.3532,99.4422,16:02:31,P SS,73,1.775,9.027,160.3550,99.1590,16:04:06,P SS,74,1.900,8.753,160.1354,99.1978,16:05:45,P SS,75,1.900,8.437,165.1502,99.4756,16:06:43,P SS,76,1.900,8.230,159.7622,99.0878,16:07:33,P SS,77,1.500,8.092,155.4420,102.0228,16:08:38,P SS,78,1.500,7.861,150.3918,102.1856,16:09:31,P SS,79,1.500,8.676,149.3206,100.1448,16:10:12,P SS,80,1.500,8.841,154.4180,100.2618,16:11:07,P SS,800,1.500,20.726,178.2156,91.7976,16:13:27,P SS,801,1.500,21.722,179.8802,92.3712,16:14:05,P SS,802,2.550,20.961,179.9716,92.2336,16:18:03,P  totalopenstation-0.5.3/sample_data/sokkia_sdr33.tops000066400000000000000000000026211477035261600226220ustar00rootroot00000000000000 00NMSDR33 V04-04.02 00-000-00 00:00 211111 10NMJOB3 121111 06NM1.00000000 01NM:SET5F V01-00 020078 31 0.00000000 13PCP.C. mm Applied:-30.000 02TP 00000031509.97000000 937.27400000 20.05300000 1.50500000 11 03NM1.60000000 08TP 00000009510.50400000 908.83800000 19.69900000 11 08TP 00000010510.40000000 907.75700000 19.48700000 11 08TP 00000011510.37900000 906.92000000 19.26200000 11 08TP 00000012509.57000000 907.92000000 19.52300000 11 08TP 00000013508.50000000 907.19200000 19.39700000 11 08TP 00000014508.29700000 909.81900000 19.48900000 11 08TP 00000015508.66400000 912.12900000 19.53600000 11 08TP 00000016507.17700000 911.62800000 19.40700000 11 08TP 00000017506.16600000 911.56500000 19.22600000 11 08TP 00000018506.76100000 914.19200000 19.45000000 11 08TP 00000019505.97500000 915.79100000 19.44000000 11 08TP 00000020506.79700000 915.51400000 19.55600000 11 58903 totalopenstation-0.5.3/sample_data/topcon_gts_229000066400000000000000000000071021477035261600221110ustar00rootroot00000000000000_'_(_)1.540_+1_ ?+00043575m0970930+1317260g+00043530t**+00+00111_*_,1.500_+2_ ?+00064702m0968990+1360970g+00064625t**+00+00099_*0048 _,1.500_+3_ ?+00070501m0968040+1539100g+00070412t**+00+00101_*_,1.500_+4_ ?+00050071m0967130+1577910g+00050004t**+00+00110_*_,1.1081 500_+5_ ?+00055697m0967790+1675820g+00055626t**+00+00105_*_,1.500_+6_ ?+00056179m0968320+1683280g+00056109t**+00+00109_*_,1.500_2083 +7_ ?+00051145m0970820+1567220g+00051091t**+00+00099_*_,1.500_+8_ ?+00051271m0971160+1569220g+00051218t**+00+00102_*_,1.500_+9_ 3087 ?+00051198m0972140+1570280g+00051149t**+00+00102_*_,1.500_+10_ ?+00051100m0971450+1571520g+00051049t**+00+00109_*_,1.500_+11_ ?+4033 00050921m0971460+1570380g+00050870t**+00+00106_*_,1.500_+12_ ?+00050849m0971440+1568820g+00050798t**+00+00102_*_,1.500_+13_ ?+005060 050907m0971380+1567880g+00050856t**+00+00110_*_,1.500_+14_ ?+00051055m0971380+1566820g+00051003t**+00+00099_*_,1.500_+15_ ?+00056063 1081m0971260+1564390g+00051029t**+00+00111_*_,1.500_+16_ ?+00051220m0971260+1564440g+00051168t**+00+00104_*_,1.500_+17_ ?+0005127054 06m0971260+1565480g+00051154t**+00+00110_*_,1.500_+18_ ?+00053441m0972430+1519400g+00053391t**+00+00099_*_,1.500_+19_ ?+000534968063 m0972050+1517820g+00053444t**+00+00100_*_,1.500_+20_ ?+00053602m0972050+1518160g+00053550t**+00+00109_*_,1.500_+21_ ?+00053631m09106 972060+1519800g+00053579t**+00+00107_*_,1.500_+22_ ?+00053500m0972180+1520230g+00053449t**+00+00100_*_,1.500_+23_ ?+00053407m0970048 2190+1519710g+00053356t**+00+00103_*_,1.500_+24_ ?+00053213m0971510+1516280g+00053160t**+00+00111_*_,1.500_+25_ ?+00053239m097151052 10+1516550g+00053186t**+00+00101_*_,1.500_+26_ ?+00053293m0971840+1517680g+00053241t**+00+00106_*_,1.500_+27_ ?+00053191m09718402051 +1517640g+00053139t**+00+00107_*_,1.500_+28_ ?+00053148m0971840+1517070g+00053096t**+00+00110_*_,1.500_+29_ ?+00055713m0972160+13041 524870g+00055660t**+00+00105_*_,1.500_+30_ ?+00055750m0971650+1522650g+00055695t**+00+00105_*_,1.500_+31_ ?+00055882m0971650+1524050 2400g+00055827t**+00+00105_*_,1.500_+32_ ?+00055960m0971840+1523910g+00055905t**+00+00103_*_,1.500_+33_ ?+00055853m0972030+152545050 00g+00055799t**+00+00107_*_,1.500_+34_ ?+00056627m0972020+1541990g+00056572t**+00+00102_*_,1.500_+35_ ?+00056708m0971700+15405506061 g+00056652t**+00+00108_*_,1.500_+36_ ?+00056822m0971700+1540520g+00056766t**+00+00106_*_,1.500_+37_ ?+00056880m0971700+1541430g+7123 00056824t**+00+00106_*_,1.500_+38_ ?+00056861m0971990+1542440g+00056806t**+00+00102_*_,1.500_+39_ ?+00056801m0971990+1543150g+008062 056746t**+00+00110_*_,1.500_+40_ ?+00056724m0971990+1543150g+00056669t**+00+00106_*_,1.500_+41_ ?+00055638m0972010+1554370g+00059061 5584t**+00+00098_*_,1.500_+42_ ?+00055614m0971930+1553230g+00055560t**+00+00108_*_,1.500_+43_ ?+00055701m0971940+1552070g+0005560053 47t**+00+00111_*_,1.500_+44_ ?+00055842m0971940+1551840g+00055788t**+00+00109_*_,1.500_+45_ ?+00056003m0971940+1552470g+000559491059 t**+00+00108_*_,1.500_+46_ ?+00056012m0972130+1553510g+00055958t**+00+00102_*_,1.500_+47_ ?+00055974m0972120+1554590g+00055920t*2108 *+00+00109_*_,1.500_+48_ ?+00055780m0971990+1554580g+00055726t**+00+00097_*_,1.500_+49_ ?+00055646m0971990+1554400g+00055592t**+3058 00+00110_*_,1.500_+50_ ?+00057117m0971580+1463270g+00057060t**+00+00108_*_,1.500_+51_ ?+00057158m0971920+1450060g+00057102t**+004055 +00103_*_,1.500_+52_ ?+00056062m0972730+1449890g+00056011t**+00+00111_*_,1.500_+53_ ?+00055997m0972180+1461500g+00055944t**+00+05037 0102_*_,1.500_ 6070  totalopenstation-0.5.3/sample_data/trimble/000077500000000000000000000000001477035261600210515ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/trimble/051012-1.RAW000066400000000000000000000227571477035261600223270ustar00rootroot00000000000000CO,Nikon RAW data format V2.00 CO,051012-1 CO,Description: CO,Client: CO,Comments: CO,Downloaded 04-Feb-2001 12:49:10 CO,Software: Pre-instM3 version: 1.00 CO,Instrument: M3 3"DR CO,Dist Units: Metres CO,Angle Units: Gons CO,Zero azimuth: North CO,Zero VA: Zenith CO,Coord Order: NEZ CO,HA Raw data: Azimuth CO,Tilt Correction: VA:ON HA:ON CO, 051012-1 Created 22-Jan-2001 11:45:07 CO,S/N:140232 CO,Temp:26C Press:1010hPa Prism:-35 22-Jan-2001 11:45:34 CO,TI HOLD Hz 0.0000 grd CO,TI INPUT th 1.250 m ih 1.500 m CO,TI INPUT th 2.000 m ih 1.500 m SS,1,2.000,12.000,104.4031,99.0992,11:50:34, SS,2,2.000,15.024,90.3635,99.0569,11:52:26, SS,3,2.000,10.595,94.1080,97.5378,11:52:38,200 SS,4,2.000,8.928,94.2517,97.3555,11:53:19,203 SS,5,2.000,15.226,57.1470,98.8391,11:56:12,99 SS,6,2.000,14.919,56.5799,98.7303,11:56:34,99 SS,7,2.000,15.976,51.5968,98.8230,11:57:00,99 SS,8,2.000,16.648,58.2791,99.1327,11:57:49,90 SS,9,2.000,16.009,56.2846,98.9647,11:58:14,90 SS,10,2.000,17.262,51.0254,99.1088,11:59:04,90 SS,11,2.000,14.818,55.7906,97.8410,11:59:35,99 SS,12,2.000,14.480,54.4407,97.8075,11:59:58,99 SS,13,2.000,15.483,50.1067,97.9905,12:00:24,99 SS,14,2.000,20.276,45.4970,99.5707,12:01:23,82 SS,15,2.000,20.076,44.6601,99.4887,12:02:05,82 SS,16,2.000,20.459,43.6997,99.5187,12:02:30,82 SS,17,2.000,20.959,43.0000,99.6209,12:02:59,175 SS,18,2.000,20.563,41.5508,99.4891,12:03:43,175 SS,19,2.000,22.209,37.8882,99.6138,12:04:56,175 SS,20,2.000,21.037,30.9198,99.4252,12:05:20,203 SS,21,2.000,20.298,26.7241,99.2687,12:06:24,209 SS,22,2.000,21.917,29.5066,99.5231,12:06:59, SS,23,2.000,21.194,25.4659,99.3088,12:07:22, SS,24,2.000,22.417,28.7372,99.4133,12:09:11,175 SS,25,2.000,23.220,33.0398,99.7044,12:09:48,175 SS,26,2.000,36.237,19.9016,99.9412,12:11:25,175 SS,27,2.000,36.255,25.4173,100.1134,12:12:38,82 SS,28,2.000,36.584,25.1797,100.1233,12:13:59,82 SS,29,2.000,36.779,25.9474,100.1440,12:14:23,82 SS,30,2.000,38.489,23.6093,100.1526,12:15:51,175 SS,31,2.000,38.952,23.8037,100.1723,12:18:21,175 SS,32,2.000,38.855,23.5379,100.1481,12:19:47,175 SS,33,2.000,39.421,23.5733,100.1330,12:21:50,55 SS,34,2.000,41.392,21.7637,100.1607,12:22:25,60 SS,35,2.000,42.033,18.7951,100.1324,12:24:38,57 SS,36,2.000,42.957,18.3671,100.1852,12:25:32, SS,37,2.000,42.712,21.9921,100.1841,12:27:19, SS,38,2.000,37.224,15.8877,99.6657,12:28:53, SS,39,2.000,36.747,10.9154,99.6901,12:30:31, SS,40,2.000,35.910,1.2646,99.1258,12:31:30, SS,41,2.000,34.249,1.5295,99.1421,12:32:10, SS,42,2.000,34.431,5.0825,99.3304,12:32:39, SS,43,2.000,36.378,387.9720,99.3626,12:33:15, SS,44,2.000,31.680,386.5931,98.9642,12:34:16, SS,45,2.000,36.761,382.8747,99.4433,12:36:28, SS,46,2.000,32.123,367.4695,99.0524,12:41:09, SS,47,2.000,29.835,379.6163,98.7752,12:42:06, SS,48,2.000,29.412,382.8853,98.8085,12:42:54, SS,49,2.000,28.932,388.7286,98.5736,12:44:27, SS,50,2.000,7.310,360.3206,95.3851,12:45:58, SS,51,2.000,11.543,332.4939,97.8033,12:46:52, SS,52,2.000,14.431,324.7787,98.5722,12:47:40, SS,53,2.000,15.843,322.2489,98.8263,12:48:18, SS,54,2.000,6.486,335.8489,95.8954,12:49:52, SS,55,2.000,5.421,311.1438,95.3834,12:50:47, SS,56,2.000,5.716,310.1892,96.1187,12:51:29, SS,57,2.000,4.805,305.9155,96.1197,12:53:30,51 SS,58,2.000,4.095,319.3847,93.3551,12:54:28, SS,59,2.000,3.959,293.6913,94.6460,12:55:11, SS,60,2.000,5.492,294.1128,96.5183,12:55:58, SS,61,2.000,3.903,92.9000,91.9736,12:56:50, SS,62,2.000,4.279,69.7363,93.4847,12:57:25, SS,63,2.000,2.658,52.3023,89.1693,12:58:12, SS,64,2.000,2.041,91.1535,85.3106,12:59:03, CO,Temp:24C Press:1010hPa Prism:-35 27-Jan-2001 11:21:49 CO,TI INPUT th 2.000 m ih 1.480 m CO,TI HOLD Hz 0.0000 grd SS,65,2.000,3.063,76.7940,87.3478,11:29:01,51 SS,66,2.000,11.482,9.0855,96.8017,11:30:38, SS,67,2.000,13.165,7.8266,97.1497,11:31:12, SS,68,2.000,13.590,15.7350,97.3424,11:32:36, SS,69,2.000,11.932,18.6597,97.2928,11:32:47, SS,70,2.000,12.639,12.6562,96.7175,11:34:34,51 SS,71,2.000,22.959,3.6131,98.5466,11:35:33, SS,72,2.000,24.812,3.1024,98.6367,11:36:08, SS,73,2.000,25.001,7.4381,98.7606,11:36:37, SS,74,2.000,23.104,8.4100,98.6651,11:37:16, SS,75,2.000,23.908,5.6605,98.5003,11:38:17,51 SS,76,2.000,35.042,3.0368,99.1353,11:39:03,1710.2 SS,77,2.000,35.225,3.0685,99.1228,11:40:33,51 SS,78,2.000,35.873,5.1835,99.2926,11:41:31,1710.45 SS,79,2.000,36.104,14.9312,99.4701,11:43:05,51 SS,80,2.000,40.136,398.1592,99.8019,11:45:18,31 SS,81,2.000,38.090,399.7227,99.6440,11:46:20,95 SS,82,2.000,37.612,399.6654,99.5730,11:46:39,95 SS,83,2.000,38.117,396.3037,99.6513,11:48:47,95 SS,84,2.000,38.282,6.1170,99.7468,11:48:55,95 SS,85,2.000,38.618,9.4341,99.8718,11:49:24,95 SS,86,2.000,38.203,9.5387,99.8288,11:49:45,95 SS,87,2.000,36.783,386.7414,99.2095,11:54:41,51 SS,88,2.000,38.160,382.8642,99.4171,11:55:20, SS,89,2.000,38.009,375.5687,99.4377,11:57:13,51 SS,90,2.000,36.706,374.3793,99.4042,11:57:57, SS,91,2.000,35.743,379.8569,99.8638,12:00:28, SS,92,2.000,32.286,371.5739,101.3612,12:02:37,51 SS,93,2.000,28.280,378.7177,98.7623,12:03:56, SS,94,2.000,28.257,377.1469,99.4210,12:05:04,1710.45 SS,95,2.000,27.931,381.7712,98.7146,12:05:52, SS,96,2.000,27.631,384.6256,98.6175,12:06:29, SS,97,2.000,27.255,384.0149,98.6561,12:06:56,95 SS,98,2.000,25.266,383.0020,98.5283,12:07:36,95 SS,99,2.000,25.377,381.9549,98.6334,12:08:33,95 SS,100,2.000,24.181,384.9465,100.4576,12:09:47,51 SS,101,2.000,16.692,375.5993,98.0595,12:10:23,95 SS,102,2.000,14.805,372.5360,97.8364,12:10:55,95 SS,103,2.000,14.981,370.7297,97.9461,12:11:36,95 SS,104,2.000,13.042,373.5292,106.2745,12:12:42,51 SS,105,2.000,9.730,356.8604,97.1179,12:13:24,95 SS,106,2.000,11.049,347.3961,97.4338,12:14:13,95 SS,107,2.000,11.367,349.0091,97.5769,12:14:41,95 SS,108,2.000,9.388,357.7149,96.8052,12:15:38, SS,109,2.000,12.397,339.2809,97.8291,12:18:20, SS,110,2.000,17.185,342.0110,98.2997,12:18:58, SS,111,2.000,16.539,344.1645,98.3604,12:19:30, SS,112,2.000,17.572,344.9238,99.3596,12:20:36,51 SS,113,2.000,17.721,348.4878,98.4500,12:21:04, SS,114,2.000,18.277,346.5474,98.4126,12:21:37, SS,115,2.000,21.372,355.3675,98.5156,12:22:18, SS,116,2.000,20.890,357.3288,98.5280,12:22:48, SS,117,2.000,21.914,357.3644,99.0737,12:23:43,51 SS,118,2.000,22.238,360.1848,98.6203,12:24:12, SS,119,2.000,22.710,358.2255,98.6193,12:24:40, SS,120,2.000,23.577,360.4166,98.6900,12:25:12,95 SS,121,2.000,25.302,363.2248,98.6796,12:25:43,95 SS,122,2.000,25.064,364.1596,98.7381,12:26:10,95 SS,123,2.000,26.376,364.2703,98.6633,12:26:34, SS,124,2.000,26.050,366.2299,98.7115,12:26:58, SS,125,2.000,27.011,365.6563,103.3840,12:28:03,51 SS,126,2.000,27.418,367.9305,98.8117,12:28:28, SS,127,2.000,27.871,366.2623,98.7848,12:29:07, SS,128,2.000,30.087,368.7838,98.8130,12:29:48, SS,129,2.000,29.172,370.0574,98.8783,12:30:49, SS,130,2.000,28.730,374.4804,98.7715,12:31:28, SS,131,2.000,23.354,373.0932,98.5272,12:32:46, SS,132,2.000,20.477,367.8251,98.3165,12:33:18, SS,133,2.000,20.864,366.4878,98.3410,12:33:50, SS,134,2.000,17.783,355.2329,96.3620,12:34:31, SS,135,2.000,14.575,358.3258,95.5520,12:35:12, SS,136,2.000,25.374,388.4992,98.4935,12:36:55,95 SS,137,2.000,25.310,389.5530,98.5500,12:37:19,95 SS,138,2.000,23.308,388.8963,98.3921,12:38:01,95 SS,139,2.000,20.376,397.4184,104.1622,12:39:14,31 SS,140,2.000,20.878,386.5704,98.2117,12:39:44,95 SS,141,2.000,18.889,385.2065,98.0054,12:40:25,95 SS,142,2.000,18.827,386.6847,98.0084,12:41:05,95 SS,143,2.000,17.728,384.5973,98.5506,12:41:57,1710.45 SS,144,2.000,16.496,383.4170,97.6833,12:42:29,95 SS,145,2.000,16.410,384.9678,97.7352,12:43:22,95 SS,146,2.000,14.529,381.4149,97.3773,12:43:54,95 SS,147,2.000,11.929,377.8445,97.0584,12:44:54,95 SS,148,2.000,11.804,380.0673,97.0583,12:45:11,95 SS,149,2.000,10.016,373.6513,96.4741,12:45:50,95 SS,150,2.000,8.380,347.0725,96.3549,12:46:48,95 SS,151,2.000,9.902,337.8658,97.1350,12:47:29,95 SS,152,2.000,9.688,335.5569,97.1037,12:47:55,95 CO,TI INPUT th 2.000 m ih 1.520 m CO,TI Hz=0 Hz 0.0000 grd CO,Temp:18C Press:1003hPa Prism:-35 03-Feb-2001 11:07:57 SS,153,2.000,12.945,298.2743,104.2812,11:11:41,51 SS,154,2.000,13.278,282.4249,98.8626,11:14:07,77 SS,155,2.000,12.375,285.7618,98.6828,11:14:49,77 SS,156,2.000,11.601,280.9732,98.7661,11:16:20,78 SS,157,2.000,10.838,280.0511,98.6869,11:17:03,78 SS,158,2.000,14.912,292.2535,98.9669,11:18:09,55 SS,159,2.000,15.862,295.3576,99.4671,11:20:34, SS,160,2.000,13.482,282.5821,99.5990,11:21:20, SS,161,2.000,1.639,221.0678,107.9072,11:25:38,31 SS,162,2.000,5.795,82.5553,114.4496,11:27:42,51 SS,163,2.000,9.922,88.7223,108.5192,11:29:14,51 SS,164,2.000,4.213,88.9303,112.5544,11:34:33,1710.45 SS,165,2.000,9.362,39.9507,106.6285,11:39:00,51 SS,166,2.000,15.848,39.2246,101.7494,11:41:15,51 SS,167,2.000,25.672,22.3700,103.8641,11:42:47,51 SS,168,2.000,40.841,372.7190,99.8490,11:45:41, SS,169,2.000,37.857,369.9681,99.7108,11:47:09, SS,170,2.000,42.145,381.5674,99.7282,11:48:03, CO,TI INPUT th 1.700 m ih 1.520 m SS,171,1.700,37.176,377.7237,100.0732,11:51:53, SS,172,1.700,36.029,373.0479,100.0176,11:54:47, SS,173,1.700,23.242,352.3056,101.2338,11:56:15,30 CO,TI INPUT th 1.850 m ih 1.520 m SS,178,1.850,37.481,17.4157,100.2609,12:17:02,73 CO,TI INPUT th 2.000 m SS,179,2.000,18.999,50.3856,99.5017,12:23:17,30 SS,180,2.000,40.388,24.3121,100.4450,12:24:27,77 SS,181,2.000,41.069,21.8106,100.1879,12:25:01,77 totalopenstation-0.5.3/sample_data/trimble/BSG-08-11-19.are000077500000000000000000000306211477035261600230550ustar00rootroot000000000000005=1000 37=498.875 38=490.567 46=0.002 39=-0.229 0=DiffZ:0.000 2=1000 37=498.875 38=490.567 39=-0.229 62=1 37=500.000 38=500.000 39=0.000 21=92.4461 11=0.000 3=1.650 0=Measured point 5=1 4=TEST 6=0.000 7=92.4486 8=109.4524 9=9.605 37=500.000 38=500.000 39=0.000 0=Measured point 5=3 4=FIX 6=0.000 7=107.1313 8=100.5089 9=9.111 37=497.857 38=499.622 39=1.348 0=Measured point 5=4 4=FIX 6=0.000 7=126.6519 8=100.4441 9=9.869 37=494.864 38=499.584 39=1.352 0=Measured point 5=5 4=FIX 6=0.000 7=140.9680 8=100.6967 9=15.422 37=489.623 38=502.904 39=1.252 0=Measured point 5=6 4=FIX 6=0.000 7=128.5312 8=100.7000 9=21.557 37=489.535 38=509.994 39=1.184 0=Measured point 5=ANG-CHIESA01 4=POS 6=0.000 7=125.8061 8=99.8426 9=10.267 37=494.827 38=500.002 39=1.446 0=Measured point 5=ANG-CHIESA02 4=POS 6=0.000 7=55.3815 8=101.7013 9=12.325 37=506.821 38=499.984 39=1.092 0=Measured point 5=ANG-CHIESA03 4=POS 6=0.000 7=60.6793 8=101.7015 9=11.440 37=505.498 38=499.890 39=1.115 0=Measured point 5=ANG-CHIESA04 4=POS 6=0.000 7=55.8516 8=101.6207 9=12.218 37=506.683 38=499.960 39=1.110 0=Measured point 5=ANG-CHIESA05 4=POS 6=0.000 7=61.1053 8=101.6204 9=11.518 37=505.481 38=499.999 39=1.128 0=Measured point 5=ANG-CHIESA06 4=POS 6=0.000 7=117.5231 8=99.7973 9=9.792 37=496.214 38=499.990 39=1.452 0=Measured point 5=ANG-CHIESA07 4=POS 6=0.000 7=117.8616 8=99.7972 9=9.658 37=496.201 38=499.848 39=1.452 0=Measured point 5=ANG-CHIESA08 4=POS 6=0.000 7=124.7136 8=99.7979 9=10.017 37=495.084 38=499.840 39=1.453 5=2000 37=494.515 38=492.123 46=0.011 39=-0.227 0=DiffZ:0.000 2=2000 37=494.515 38=492.123 39=-0.227 62=4 37=494.864 38=499.584 39=1.352 21=97.0256 11=0.000 3=1.650 0=Measured point 5=4 4=TEST 6=0.000 7=97.0433 8=100.6112 9=7.469 37=494.862 38=499.584 39=1.352 0=Measured point 5=TB1-2-09 4=FOT 6=1.400 7=103.2916 8=107.1654 9=11.947 37=493.902 38=503.978 39=-1.318 0=Measured point 5=TB1-2-13 4=FOT 6=1.400 7=101.4192 8=106.7274 9=11.942 37=494.250 38=503.995 39=-1.236 0=Measured point 5=TB1-2-21 4=FOT 6=1.400 7=100.7045 8=106.0729 9=13.247 37=494.369 38=505.309 39=-1.238 0=Measured point 5=TB1-2-23 4=FOT 6=1.400 7=102.9445 8=106.4813 9=13.175 37=493.909 38=505.215 39=-1.315 0=Measured point 5=TB1-2-01 4=QUOTE 6=1.400 7=101.8290 8=106.4815 9=12.993 37=494.144 38=505.043 39=-1.297 0=Measured point 5=TB1-2-02 4=QUOTE 6=1.400 7=100.4252 8=106.3452 9=12.964 37=494.429 38=505.022 39=-1.266 0=Measured point 5=TB1-2-03 4=QUOTE 6=1.400 7=100.7208 8=106.3681 9=12.830 37=494.371 38=504.888 39=-1.258 0=Measured point 5=TB1-2-04 4=QUOTE 6=1.400 7=101.4198 8=106.3132 9=12.765 37=494.232 38=504.822 39=-1.240 0=Measured point 5=TB1-2-05 4=QUOTE 6=1.400 7=101.5145 8=106.3254 9=12.660 37=494.215 38=504.717 39=-1.232 0=Measured point 5=TB1-2-06 4=QUOTE 6=1.400 7=101.3570 8=106.3395 9=12.572 37=494.249 38=504.630 39=-1.226 0=Measured point 5=TB1-2-07 4=QUOTE 6=1.400 7=101.3313 8=106.3398 9=12.572 37=494.254 38=504.629 39=-1.226 0=Measured point 5=TB1-2-08 4=QUOTE 6=1.400 7=101.4275 8=106.4464 9=12.485 37=494.237 38=504.541 39=-1.239 0=Measured point 5=TB1-2-09 4=QUOTE 6=1.400 7=102.0692 8=106.5354 9=12.467 37=494.112 38=504.517 39=-1.254 0=Measured point 5=TB1-2-10 4=QUOTE 6=1.400 7=102.6078 8=106.4769 9=12.445 37=494.008 38=504.493 39=-1.240 0=Measured point 5=TB1-2-11 4=QUOTE 6=1.400 7=102.4327 8=106.4107 9=12.720 37=494.032 38=504.769 39=-1.255 0=Measured point 5=TB1-2-12 4=QUOTE 6=1.400 7=102.0744 8=106.4312 9=12.560 37=494.108 38=504.612 39=-1.243 0=Measured point 5=TB1-2-13 4=QUOTE 6=1.400 7=102.4409 8=106.3447 9=12.384 37=494.043 38=504.437 39=-1.209 0=Measured point 5=TB1-2-14 4=QUOTE 6=1.400 7=102.2967 8=106.4283 9=12.348 37=494.072 38=504.401 39=-1.221 0=Measured point 5=TB1-2-15 4=QUOTE 6=1.400 7=102.0746 8=106.7348 9=12.211 37=494.120 38=504.259 39=-1.266 0=Measured point 5=TB1-2-16 4=QUOTE 6=1.400 7=101.7871 8=106.4705 9=12.249 37=494.173 38=504.304 39=-1.219 0=Measured point 5=TB1-2-17 4=QUOTE 6=1.400 7=101.7767 8=106.4714 9=12.242 37=494.175 38=504.297 39=-1.219 0=Measured point 5=TB1-2-18 4=QUOTE 6=1.400 7=101.5587 8=106.3417 9=12.129 37=494.220 38=504.188 39=-1.183 0=Measured point 5=TB1-2-19 4=QUOTE 6=1.400 7=102.2023 8=106.0500 9=12.089 37=494.099 38=504.150 39=-1.124 0=Measured point 5=TB1-2-20 4=QUOTE 6=1.400 7=102.1976 8=106.0494 9=12.089 37=494.100 38=504.150 39=-1.124 0=Measured point 5=TB1-2-21 4=QUOTE 6=1.400 7=102.4416 8=106.5756 9=12.151 37=494.052 38=504.200 39=-1.229 0=Measured point 5=TB1-2-22 4=QUOTE 6=1.400 7=102.8357 8=106.3313 9=12.184 37=493.975 38=504.235 39=-1.186 0=Measured point 5=TB1-2-23 4=QUOTE 6=1.400 7=101.2062 8=106.5703 9=12.430 37=494.281 38=504.485 39=-1.257 0=Measured point 5=TB1-2-24 4=QUOTE 6=1.400 7=102.0188 8=106.5160 9=13.063 37=494.103 38=505.111 39=-1.311 0=Measured point 5=RR1 4=RR 6=1.400 7=101.1089 8=106.3470 9=12.829 37=494.293 38=504.886 39=-1.253 0=Measured point 5=SAGGIO1-01 4=POLY 6=1.800 7=110.0966 8=100.3196 9=8.169 37=493.225 38=500.189 39=-0.418 0=Measured point 5=SAGGIO1-02 4=POLY 6=1.800 7=105.2152 8=100.0084 9=16.142 37=493.194 38=508.211 39=-0.379 0=Measured point 5=SAGGIO1-03 4=POLY 6=1.800 7=104.2647 8=100.0934 9=19.734 37=493.194 38=511.813 39=-0.405 0=Measured point 5=SAGGIO1-04 4=POLY 6=1.800 7=112.3955 8=100.5634 9=19.485 37=490.745 38=511.239 39=-0.549 0=Measured point 5=SAGGIO1-05 4=POLY 6=1.800 7=110.8082 8=100.2497 9=21.437 37=490.893 38=513.252 39=-0.461 0=Measured point 5=SAGGIO1-06 4=POLY 6=1.800 7=104.0417 8=100.1667 9=22.190 37=493.107 38=514.268 39=-0.435 0=Measured point 5=SAGGIO1-07 4=POLY 6=1.800 7=103.0146 8=99.9675 9=26.100 37=493.280 38=518.193 39=-0.363 0=Measured point 5=SAGGIO1-08 4=POLY 6=1.800 7=107.9505 8=99.8871 9=26.575 37=491.205 38=518.491 39=-0.329 0=Measured point 5=SAGGIO1-09 4=POLY 6=1.800 7=107.9499 8=99.6002 9=28.553 37=490.959 38=520.453 39=-0.197 0=Measured point 5=SAGGIO1-10 4=QUOTE 6=1.800 7=106.1041 8=101.3116 9=27.523 37=491.881 38=519.514 39=-0.943 0=Measured point 5=SAGGIO1-11 4=QUOTE 6=1.800 7=100.5478 8=101.3817 9=26.339 37=494.289 38=518.455 39=-0.948 0=Measured point 5=SAGGIO1-12 4=QUOTE 6=1.800 7=100.5159 8=101.8145 9=24.191 37=494.319 38=516.303 39=-1.066 0=Measured point 5=SAGGIO1-13 4=QUOTE 6=1.800 7=101.4517 8=102.7893 9=20.223 37=494.054 38=512.321 39=-1.262 0=Measured point 5=SAGGIO1-14 4=QUOTE 6=1.800 7=106.0815 8=102.5187 9=20.708 37=492.541 38=512.721 39=-1.196 0=Measured point 5=SAGGIO1-15 4=QUOTE 6=1.800 7=110.7790 8=102.0386 9=20.467 37=491.068 38=512.287 39=-1.032 0=Measured point 5=SAGGIO1-16 4=QUOTE 6=1.800 7=102.6043 8=103.5034 9=15.568 37=493.879 38=507.654 39=-1.233 0=Measured point 5=SAGGIO1-17 4=QUOTE 6=1.800 7=104.3271 8=105.7009 9=9.639 37=493.863 38=501.701 39=-1.238 0=Measured point 5=US10-01 4=LIN 6=1.800 7=102.5295 8=105.9703 9=8.530 37=494.178 38=500.609 39=-1.175 0=Measured point 5=US10-02 4=LIN 6=1.800 7=102.3942 8=105.4746 9=10.201 37=494.133 38=502.279 39=-1.253 0=Measured point 5=US10-03 4=LIN 6=1.800 7=101.0428 8=104.9555 9=11.621 37=494.325 38=503.707 39=-1.280 0=Measured point 5=US10-04 4=LIN 6=1.800 7=100.9693 8=104.0822 9=13.423 37=494.311 38=505.516 39=-1.237 0=Measured point 5=US10-05 4=LIN 6=1.800 7=101.4484 8=103.7507 9=14.713 37=494.181 38=506.807 39=-1.243 0=Measured point 5=US10-06 4=LIN 6=1.800 7=100.8442 8=102.9661 9=16.044 37=494.303 38=508.148 39=-1.124 0=Measured point 5=US10-07 4=LIN 6=1.800 7=100.4421 8=102.8247 9=17.291 37=494.395 38=509.396 39=-1.143 0=Measured point 5=US10-08 4=LIN 6=1.800 7=100.3073 8=102.6793 9=19.658 37=494.420 38=511.763 39=-1.204 0=Measured point 5=US10-09 4=LIN 6=1.800 7=100.3077 8=102.4900 9=21.924 37=494.409 38=514.029 39=-1.234 0=Measured point 5=US10-10 4=LIN 6=1.800 7=99.6001 8=102.9366 9=22.264 37=494.655 38=514.363 39=-1.403 0=Measured point 5=US10-11 4=LIN 6=1.800 7=99.6961 8=101.6426 9=25.115 37=494.635 38=517.230 39=-1.024 0=Measured point 5=US10-12 4=LIN 6=1.800 7=99.8958 8=101.6896 9=25.175 37=494.556 38=517.289 39=-1.045 0=Measured point 5=US10-13 4=LIN 6=1.800 7=100.0417 8=101.0628 9=27.856 37=494.497 38=519.975 39=-0.842 0=Measured point 5=US12-01 4=REP-CHIODO 6=1.800 7=102.5805 8=104.4460 9=11.984 37=494.031 38=504.068 39=-1.213 0=Measured point 5=CAMP01 4=CAMP 6=1.800 7=100.7820 8=103.0685 9=14.497 37=494.337 38=506.602 39=-1.075 0=Measured point 5=US7-01 4=REP-CHIODO 6=1.400 7=102.2015 8=106.4848 9=12.776 37=494.076 38=504.825 39=-1.276 0=Measured point 5=US7-02 4=REP-CHIODO 6=1.400 7=102.5099 8=106.5348 9=12.517 37=494.024 38=504.565 39=-1.259 0=Measured point 5=US7-03 4=REP-CHIODO 6=1.400 7=101.9766 8=106.3802 9=12.532 37=494.128 38=504.586 39=-1.230 5=3000 37=492.047 38=500.210 46=0.001 39=-0.335 0=DiffZ:0.000 2=3000 37=492.047 38=500.210 39=-0.335 62=6 37=489.535 38=509.994 39=1.184 21=116.0029 11=0.000 3=1.650 0=Measured point 5=6 4=TEST 6=0.000 7=116.0016 8=100.8271 9=10.102 37=489.535 38=509.994 39=1.184 0=Measured point 5=US3-01 4=FOT 6=1.400 7=89.6683 8=103.7194 9=8.298 37=493.386 38=508.385 39=-0.570 0=Measured point 5=US3-02 4=FOT 6=1.400 7=82.7756 8=104.2360 9=8.497 37=494.313 38=508.380 39=-0.650 0=Measured point 5=US3-03 4=FOT 6=1.400 7=90.0565 8=103.0677 9=9.136 37=493.467 38=509.225 39=-0.525 0=Measured point 5=US3-04 4=FOT 6=1.400 7=84.5382 8=104.2668 9=9.381 37=494.298 38=509.296 39=-0.713 0=Measured point 5=US3-01 4=QUOTE 6=1.400 7=87.3642 8=105.1603 9=9.159 37=493.847 38=509.160 39=-0.827 0=Measured point 5=US3-02 4=QUOTE 6=1.400 7=85.9743 8=103.2212 9=8.656 37=493.937 38=508.646 39=-0.523 0=Measured point 5=US3-03 4=QUOTE 6=1.400 7=83.1172 8=104.6001 9=8.884 37=494.370 38=508.761 39=-0.726 0=Measured point 5=SEZ1-01 4=FOT 6=1.400 7=89.7428 8=103.7343 9=8.303 37=493.377 38=508.391 39=-0.572 0=Measured point 5=SEZ1-02 4=FOT 6=1.400 7=82.8361 8=104.2534 9=8.494 37=494.305 38=508.380 39=-0.652 0=Measured point 5=SEZ1-09 4=FOT 6=1.400 7=82.7612 8=108.2617 9=8.364 37=494.266 38=508.202 39=-1.167 0=Measured point 5=SEZ1-13 4=FOT 6=1.400 7=88.1611 8=108.4761 9=8.083 37=493.529 38=508.083 39=-1.158 0=Measured point 5=US10PROSP-SUD-01 4=FOT 6=0.000 7=48.9907 8=126.4925 9=3.680 37=494.465 38=502.553 39=-0.173 0=Measured point 5=US10PROSP-SUD-02 4=FOT 6=0.000 7=66.1324 8=119.2139 9=5.198 37=494.565 38=504.487 39=-0.230 0=Measured point 5=US10PROSP-SUD-03 4=FOT 6=0.000 7=69.2046 8=128.3967 9=5.525 37=494.366 38=504.623 39=-1.068 0=Measured point 5=US10PROSP-SUD-04 4=FOT 6=0.000 7=50.6868 8=143.5335 9=3.963 37=494.196 38=502.406 39=-1.189 0=Measured point 5=SAGGIO1-100 4=POLY 6=1.400 7=333.9797 8=101.9404 9=2.619 37=493.379 38=497.957 39=-0.165 0=Measured point 5=SAGGIO1-101 4=POLY 6=1.400 7=350.3962 8=103.2037 9=3.795 37=494.744 38=497.547 39=-0.276 0=Measured point 5=SAGGIO1-102 4=POLY 6=1.400 7=369.1940 8=102.2969 9=5.264 37=496.704 38=497.763 39=-0.275 0=Measured point 5=SAGGIO1-103 4=POLY 6=1.400 7=378.3307 8=101.4416 9=6.953 37=498.600 38=497.890 39=-0.242 0=Measured point 5=SAGGIO1-104 4=QUOTE 6=1.400 7=383.1316 8=110.2850 9=5.824 37=497.595 38=498.705 39=-1.022 0=Measured point 5=SAGGIO1-105 4=QUOTE 6=1.400 7=373.7222 8=114.1193 9=4.304 37=495.894 38=498.526 39=-1.032 0=Measured point 5=SAGGIO1-106 4=QUOTE 6=1.400 7=359.1826 8=123.0656 9=2.799 37=494.145 38=498.645 39=-1.077 0=Measured point 5=ANG-CHIESA 4=POS 6=0.000 7=99.7024 8=93.6956 9=20.177 37=492.141 38=520.288 39=3.310 0=Measured point 5=ANG-CHIESA 4=POS 6=0.000 7=99.7127 8=92.4468 9=20.230 37=492.138 38=520.298 39=3.710 0=Measured point 5=PARETE-CH-01 4=POS 6=0.000 7=48.7494 8=92.7900 9=3.893 37=494.836 38=502.891 39=1.755 0=Measured point 5=PARETE-CH-02 4=POS 6=0.000 7=87.7976 8=95.7426 9=14.375 37=494.780 38=514.290 39=2.276 totalopenstation-0.5.3/sample_data/zeiss_elta_r55/000077500000000000000000000000001477035261600222505ustar00rootroot00000000000000totalopenstation-0.5.3/sample_data/zeiss_elta_r55/zeiss_elta_r55000066400000000000000000000012001477035261600250210ustar00rootroot00000000000000 0001 OR.COOR 0002 0S X 0.000 Y 0.000 Z 0.000 0003 Om 397.0370 0004 POLAR 0005 INPUT th 1.500 ih 0.000 0006 INPUT th 0.000 ih 0.000 Z 0.000 0007 1 X -0.472 Y 1.576 Z 0.004 END totalopenstation-0.5.3/sample_data/zeiss_elta_r55/zeiss_elta_r55-R4.tops000066400000000000000000000271131477035261600263030ustar00rootroot00000000000000For R4|TR OR.COOR| | | | For R4|KR A 0|X 0.000 m |Y 0.000 m | | For R4|TR |m 0.999198 |Om 21.9645 grd | | For R4|KR S 0|X 23.926 m |Y 46.475 m |Z 0.000 m | For R4|TR POLAR | | | | For R4|TR INPUT |th 1.500 m |ih 1.486 m | | For R4|KR S 1| | |Z 12.232 m | For R4|KR NTR1100|X 21.259 m |Y 59.620 m |Z 11.256 m | For R4|KR NTR1101|X 21.735 m |Y 50.712 m |Z 11.312 m | For R4|KR 67R1102|X 9.004 m |Y 53.352 m |Z 11.448 m | For R4|KR 67R1103|X 9.305 m |Y 53.038 m |Z 11.365 m | For R4|KR 67R1104|X 8.595 m |Y 52.309 m |Z 11.377 m | For R4|KR 67R1105|X 7.742 m |Y 51.665 m |Z 11.392 m | For R4|KR 67R1106|X 7.256 m |Y 51.377 m |Z 11.429 m | For R4|KR 67R1107|X 6.236 m |Y 51.390 m |Z 11.384 m | For R4|KR 67R1108|X 6.554 m |Y 50.896 m |Z 11.334 m | For R4|KR 67R1109|X 5.593 m |Y 50.870 m |Z 11.329 m | For R4|KR 67R1110|X 5.966 m |Y 50.478 m |Z 11.379 m | For R4|KR A61111|X 10.750 m |Y 51.494 m |Z 11.246 m | For R4|KR A61112|X 8.943 m |Y 50.303 m |Z 11.247 m | For R4|KR A61113|X 9.078 m |Y 51.508 m |Z 11.230 m | For R4|KR A61114|X 9.517 m |Y 52.891 m |Z 11.206 m | For R4|KR A61115|X 7.714 m |Y 51.514 m |Z 11.175 m | For R4|KR A61116|X 7.858 m |Y 49.914 m |Z 11.247 m | For R4|KR A61117|X 7.598 m |Y 50.743 m |Z 11.247 m | For R4|KR A61118|X 6.671 m |Y 50.679 m |Z 11.229 m | For R4|KR A61119|X 7.129 m |Y 49.371 m |Z 11.296 m | For R4|KR SOS1120|X 8.763 m |Y 49.915 m |Z 11.336 m | For R4|KR SOS1121|X 8.680 m |Y 50.009 m |Z 11.311 m | For R4|KR SOS1122|X 8.603 m |Y 49.945 m |Z 11.322 m | For R4|KR SOS1123|X 8.656 m |Y 49.858 m |Z 11.342 m | For R4|KR SOS1124|X 8.655 m |Y 50.230 m |Z 11.263 m | For R4|KR SOS1125|X 8.558 m |Y 50.364 m |Z 11.250 m | For R4|KR SOS1126|X 8.440 m |Y 50.326 m |Z 11.269 m | For R4|KR SOS1127|X 8.503 m |Y 50.099 m |Z 11.284 m | For R4|KR SOS1128|X 8.405 m |Y 50.639 m |Z 11.222 m | For R4|KR SOS1129|X 8.167 m |Y 50.771 m |Z 11.207 m | For R4|KR SOS1130|X 8.101 m |Y 50.681 m |Z 11.219 m | For R4|KR SOS1131|X 8.268 m |Y 50.518 m |Z 11.232 m | For R4|KR SOS1132|X 9.037 m |Y 51.129 m |Z 11.261 m | For R4|KR SOS1133|X 8.967 m |Y 51.317 m |Z 11.245 m | For R4|KR SOS1134|X 8.787 m |Y 51.234 m |Z 11.253 m | For R4|KR SOS1135|X 8.877 m |Y 51.065 m |Z 11.229 m | For R4|KR SOS1136|X 8.397 m |Y 51.870 m |Z 11.234 m | For R4|KR SOS1137|X 8.327 m |Y 51.985 m |Z 11.230 m | For R4|KR SOS1138|X 8.260 m |Y 51.912 m |Z 11.239 m | For R4|KR SOS1139|X 9.287 m |Y 52.367 m |Z 11.219 m | For R4|KR SOS1140|X 9.178 m |Y 52.489 m |Z 11.226 m | For R4|KR SOS1141|X 9.150 m |Y 52.378 m |Z 11.241 m | For R4|KR SOS1142|X 10.427 m |Y 51.788 m |Z 11.203 m | For R4|KR SOS1143|X 10.374 m |Y 51.769 m |Z 11.200 m | For R4|KR SOS1144|X 10.291 m |Y 51.933 m |Z 11.201 m | For R4|KR SOS1145|X 10.416 m |Y 51.929 m |Z 11.209 m | For R4|KR A101146|X 11.528 m |Y 45.985 m |Z 11.239 m | For R4|KR A101147|X 13.644 m |Y 47.203 m |Z 11.267 m | For R4|KR A101148|X 13.592 m |Y 45.029 m |Z 11.190 m | For R4|KR A101149|X 15.378 m |Y 44.347 m |Z 11.245 m | For R4|KR A101150|X 13.518 m |Y 43.398 m |Z 11.221 m | For R4|KR 11R1151|X 13.431 m |Y 42.713 m |Z 11.298 m | For R4|KR 11R1152|X 12.315 m |Y 44.395 m |Z 11.190 m | For R4|KR 11R1153|X 11.288 m |Y 45.855 m |Z 11.263 m | For R4|KR 11R1154|X 9.847 m |Y 44.880 m |Z 11.280 m | For R4|KR 11R1155|X 10.863 m |Y 43.319 m |Z 11.254 m | For R4|KR 11R1156|X 12.019 m |Y 41.732 m |Z 11.295 m | For R4|KR A111157|X 13.081 m |Y 43.238 m |Z 11.288 m | For R4|KR A111158|X 12.768 m |Y 43.716 m |Z 11.172 m | For R4|KR A111159|X 12.448 m |Y 44.216 m |Z 11.163 m | For R4|KR A111160|X 12.118 m |Y 44.604 m |Z 11.178 m | For R4|KR A111161|X 11.848 m |Y 44.362 m |Z 11.121 m | For R4|KR A111162|X 12.126 m |Y 43.917 m |Z 11.127 m | For R4|KR A111163|X 12.788 m |Y 43.016 m |Z 11.234 m | For R4|KR A111164|X 13.160 m |Y 42.513 m |Z 11.213 m | For R4|KR A111165|X 12.218 m |Y 42.487 m |Z 11.149 m | For R4|KR A111166|X 11.667 m |Y 42.551 m |Z 11.171 m | For R4|KR A111167|X 11.611 m |Y 43.212 m |Z 11.137 m | For R4|KR A111168|X 12.004 m |Y 43.461 m |Z 11.126 m | For R4|KR A111169|X 11.569 m |Y 43.688 m |Z 11.177 m | For R4|KR A111170|X 11.485 m |Y 44.125 m |Z 11.117 m | For R4|KR A111171|X 10.553 m |Y 43.975 m |Z 11.179 m | For R4|KR A111172|X 10.190 m |Y 44.403 m |Z 11.194 m | For R4|KR A111173|X 10.876 m |Y 45.435 m |Z 11.199 m | For R4|KR 3051174|X 27.679 m |Y 61.099 m |Z 11.408 m | For R4|KR 3051175|X 26.522 m |Y 60.634 m |Z 11.396 m | For R4|KR 3051176|X 25.544 m |Y 60.073 m |Z 11.351 m | For R4|KR 3051177|X 24.438 m |Y 60.437 m |Z 11.333 m | For R4|KR 3051178|X 22.634 m |Y 61.513 m |Z 11.430 m | For R4|KR 3051179|X 26.546 m |Y 61.062 m |Z 11.417 m | For R4|KR 3051180|X 24.653 m |Y 61.281 m |Z 11.382 m | For R4|KR 3051181|X 22.948 m |Y 61.919 m |Z 11.448 m | For R4|KR 3331182|X 25.376 m |Y 57.008 m |Z 11.311 m | For R4|KR 3331183|X 25.818 m |Y 57.539 m |Z 11.339 m | For R4|KR 3331184|X 26.022 m |Y 57.987 m |Z 11.404 m | For R4|KR 3331185|X 25.714 m |Y 58.464 m |Z 11.379 m | For R4|KR 3331186|X 25.640 m |Y 57.768 m |Z 11.374 m | For R4|KR 3331187|X 27.677 m |Y 59.584 m |Z 11.418 m | For R4|KR 3331188|X 26.408 m |Y 58.726 m |Z 11.411 m | For R4|KR 3331189|X 28.915 m |Y 56.979 m |Z 11.422 m | For R4|KR 3331190|X 26.751 m |Y 55.508 m |Z 11.365 m | For R4|KR 3331191|X 25.814 m |Y 54.409 m |Z 11.363 m | For R4|KR 3331192|X 23.828 m |Y 52.894 m |Z 11.307 m | For R4|KR 3331193|X 23.173 m |Y 55.113 m |Z 11.308 m | For R4|KR 3331194|X 24.808 m |Y 55.711 m |Z 11.314 m | For R4|KR 3371195|X 19.030 m |Y 50.233 m |Z 11.334 m | For R4|KR 3371196|X 19.248 m |Y 50.487 m |Z 11.391 m | For R4|KR 3371197|X 20.529 m |Y 50.622 m |Z 11.306 m | For R4|KR 3371198|X 19.699 m |Y 51.000 m |Z 11.324 m | For R4|KR 3371199|X 19.725 m |Y 51.685 m |Z 11.306 m | For R4|KR 3371200|X 20.334 m |Y 52.560 m |Z 11.272 m | For R4|KR 3371201|X 20.020 m |Y 52.803 m |Z 11.267 m | For R4|KR 3371202|X 19.085 m |Y 52.538 m |Z 11.318 m | For R4|KR 3371203|X 17.963 m |Y 51.615 m |Z 11.299 m | For R4|KR 3371204|X 17.676 m |Y 51.081 m |Z 11.338 m | For R4|KR 3371205|X 18.668 m |Y 51.459 m |Z 11.320 m | For R4|KR 3381206|X 21.885 m |Y 54.431 m |Z 11.291 m | For R4|KR 3381207|X 21.427 m |Y 54.140 m |Z 11.283 m | For R4|KR 3381208|X 20.770 m |Y 54.085 m |Z 11.262 m | For R4|KR 3381209|X 20.651 m |Y 53.116 m |Z 11.269 m | For R4|KR 3381210|X 19.824 m |Y 53.636 m |Z 11.283 m | For R4|KR 3381211|X 19.238 m |Y 54.025 m |Z 11.329 m | For R4|KR 3381212|X 19.482 m |Y 54.453 m |Z 11.337 m | For R4|KR 3381213|X 20.386 m |Y 54.887 m |Z 11.331 m | For R4|KR 3381214|X 21.095 m |Y 55.323 m |Z 11.354 m | For R4|KR 3381215|X 20.703 m |Y 54.490 m |Z 11.328 m | For R4|KR 3391216|X 19.481 m |Y 57.806 m |Z 11.321 m | For R4|KR 3391217|X 15.661 m |Y 57.153 m |Z 11.431 m | For R4|KR 3391218|X 14.859 m |Y 56.763 m |Z 11.282 m | For R4|KR 3391219|X 15.442 m |Y 56.222 m |Z 11.336 m | For R4|KR 3391220|X 15.651 m |Y 56.335 m |Z 11.343 m | For R4|KR 3391221|X 16.354 m |Y 55.626 m |Z 11.311 m | For R4|KR 3391222|X 16.577 m |Y 54.898 m |Z 11.288 m | For R4|KR 3391223|X 16.176 m |Y 54.342 m |Z 11.250 m | For R4|KR 3391224|X 16.896 m |Y 52.202 m |Z 11.318 m | For R4|KR 3391225|X 16.713 m |Y 55.181 m |Z 11.308 m | For R4|KR 3391226|X 16.784 m |Y 54.815 m |Z 11.314 m | For R4|KR 3391227|X 17.186 m |Y 54.970 m |Z 11.302 m | For R4|KR 3391228|X 18.005 m |Y 55.954 m |Z 11.357 m | For R4|KR 3391229|X 18.185 m |Y 55.663 m |Z 11.349 m | For R4|KR 3391230|X 18.502 m |Y 55.906 m |Z 11.360 m | For R4|KR 3391231|X 18.336 m |Y 56.226 m |Z 11.366 m | For R4|KR 3391232|X 19.330 m |Y 56.873 m |Z 11.418 m | For R4|KR 3391233|X 19.507 m |Y 56.658 m |Z 11.398 m | For R4|KR 3391234|X 19.764 m |Y 56.829 m |Z 11.394 m | For R4|KR 3391235|X 19.598 m |Y 57.059 m |Z 11.401 m | For R4|KR 3391236|X 20.264 m |Y 52.899 m |Z 11.254 m | For R4|KR 3391237|X 16.891 m |Y 53.721 m |Z 11.221 m | For R4|KR 3391238|X 18.435 m |Y 54.968 m |Z 11.345 m | For R4|KR 3401239|X 16.092 m |Y 55.146 m |Z 11.223 m | For R4|KR 3401240|X 15.762 m |Y 55.993 m |Z 11.268 m | For R4|KR ORD1241|X 18.092 m |Y 50.354 m |Z 11.405 m | END totalopenstation-0.5.3/sample_data/zeiss_elta_r55/zeiss_elta_r55-R5.tops000066400000000000000000000316211477035261600263030ustar00rootroot00000000000000For R5|Adr 0001|TR OR.COOR| | | | For R5|Adr 0002|KR A 0|X 0.000 m |Y 0.000 m | | For R5|Adr 0003|TR |m 0.999198 |Om 21.9645 grd | | For R5|Adr 0004|KR S 0|X 23.926 m |Y 46.475 m |Z 0.000 m | For R5|Adr 0005|TR POLAR | | | | For R5|Adr 0006|TR INPUT |th 1.500 m |ih 1.486 m | | For R5|Adr 0007|KR S 1| | |Z 12.232 m | For R5|Adr 0008|KR NTR1100|X 21.259 m |Y 59.620 m |Z 11.256 m | For R5|Adr 0009|KR NTR1101|X 21.735 m |Y 50.712 m |Z 11.312 m | For R5|Adr 0010|KR 67R1102|X 9.004 m |Y 53.352 m |Z 11.448 m | For R5|Adr 0011|KR 67R1103|X 9.305 m |Y 53.038 m |Z 11.365 m | For R5|Adr 0012|KR 67R1104|X 8.595 m |Y 52.309 m |Z 11.377 m | For R5|Adr 0013|KR 67R1105|X 7.742 m |Y 51.665 m |Z 11.392 m | For R5|Adr 0014|KR 67R1106|X 7.256 m |Y 51.377 m |Z 11.429 m | For R5|Adr 0015|KR 67R1107|X 6.236 m |Y 51.390 m |Z 11.384 m | For R5|Adr 0016|KR 67R1108|X 6.554 m |Y 50.896 m |Z 11.334 m | For R5|Adr 0017|KR 67R1109|X 5.593 m |Y 50.870 m |Z 11.329 m | For R5|Adr 0018|KR 67R1110|X 5.966 m |Y 50.478 m |Z 11.379 m | For R5|Adr 0019|KR A61111|X 10.750 m |Y 51.494 m |Z 11.246 m | For R5|Adr 0020|KR A61112|X 8.943 m |Y 50.303 m |Z 11.247 m | For R5|Adr 0021|KR A61113|X 9.078 m |Y 51.508 m |Z 11.230 m | For R5|Adr 0022|KR A61114|X 9.517 m |Y 52.891 m |Z 11.206 m | For R5|Adr 0023|KR A61115|X 7.714 m |Y 51.514 m |Z 11.175 m | For R5|Adr 0024|KR A61116|X 7.858 m |Y 49.914 m |Z 11.247 m | For R5|Adr 0025|KR A61117|X 7.598 m |Y 50.743 m |Z 11.247 m | For R5|Adr 0026|KR A61118|X 6.671 m |Y 50.679 m |Z 11.229 m | For R5|Adr 0027|KR A61119|X 7.129 m |Y 49.371 m |Z 11.296 m | For R5|Adr 0028|KR SOS1120|X 8.763 m |Y 49.915 m |Z 11.336 m | For R5|Adr 0029|KR SOS1121|X 8.680 m |Y 50.009 m |Z 11.311 m | For R5|Adr 0030|KR SOS1122|X 8.603 m |Y 49.945 m |Z 11.322 m | For R5|Adr 0031|KR SOS1123|X 8.656 m |Y 49.858 m |Z 11.342 m | For R5|Adr 0032|KR SOS1124|X 8.655 m |Y 50.230 m |Z 11.263 m | For R5|Adr 0033|KR SOS1125|X 8.558 m |Y 50.364 m |Z 11.250 m | For R5|Adr 0034|KR SOS1126|X 8.440 m |Y 50.326 m |Z 11.269 m | For R5|Adr 0035|KR SOS1127|X 8.503 m |Y 50.099 m |Z 11.284 m | For R5|Adr 0036|KR SOS1128|X 8.405 m |Y 50.639 m |Z 11.222 m | For R5|Adr 0037|KR SOS1129|X 8.167 m |Y 50.771 m |Z 11.207 m | For R5|Adr 0038|KR SOS1130|X 8.101 m |Y 50.681 m |Z 11.219 m | For R5|Adr 0039|KR SOS1131|X 8.268 m |Y 50.518 m |Z 11.232 m | For R5|Adr 0040|KR SOS1132|X 9.037 m |Y 51.129 m |Z 11.261 m | For R5|Adr 0041|KR SOS1133|X 8.967 m |Y 51.317 m |Z 11.245 m | For R5|Adr 0042|KR SOS1134|X 8.787 m |Y 51.234 m |Z 11.253 m | For R5|Adr 0043|KR SOS1135|X 8.877 m |Y 51.065 m |Z 11.229 m | For R5|Adr 0044|KR SOS1136|X 8.397 m |Y 51.870 m |Z 11.234 m | For R5|Adr 0045|KR SOS1137|X 8.327 m |Y 51.985 m |Z 11.230 m | For R5|Adr 0046|KR SOS1138|X 8.260 m |Y 51.912 m |Z 11.239 m | For R5|Adr 0047|KR SOS1139|X 9.287 m |Y 52.367 m |Z 11.219 m | For R5|Adr 0048|KR SOS1140|X 9.178 m |Y 52.489 m |Z 11.226 m | For R5|Adr 0049|KR SOS1141|X 9.150 m |Y 52.378 m |Z 11.241 m | For R5|Adr 0050|KR SOS1142|X 10.427 m |Y 51.788 m |Z 11.203 m | For R5|Adr 0051|KR SOS1143|X 10.374 m |Y 51.769 m |Z 11.200 m | For R5|Adr 0052|KR SOS1144|X 10.291 m |Y 51.933 m |Z 11.201 m | For R5|Adr 0053|KR SOS1145|X 10.416 m |Y 51.929 m |Z 11.209 m | For R5|Adr 0054|KR A101146|X 11.528 m |Y 45.985 m |Z 11.239 m | For R5|Adr 0055|KR A101147|X 13.644 m |Y 47.203 m |Z 11.267 m | For R5|Adr 0056|KR A101148|X 13.592 m |Y 45.029 m |Z 11.190 m | For R5|Adr 0057|KR A101149|X 15.378 m |Y 44.347 m |Z 11.245 m | For R5|Adr 0058|KR A101150|X 13.518 m |Y 43.398 m |Z 11.221 m | For R5|Adr 0059|KR 11R1151|X 13.431 m |Y 42.713 m |Z 11.298 m | For R5|Adr 0060|KR 11R1152|X 12.315 m |Y 44.395 m |Z 11.190 m | For R5|Adr 0061|KR 11R1153|X 11.288 m |Y 45.855 m |Z 11.263 m | For R5|Adr 0062|KR 11R1154|X 9.847 m |Y 44.880 m |Z 11.280 m | For R5|Adr 0063|KR 11R1155|X 10.863 m |Y 43.319 m |Z 11.254 m | For R5|Adr 0064|KR 11R1156|X 12.019 m |Y 41.732 m |Z 11.295 m | For R5|Adr 0065|KR A111157|X 13.081 m |Y 43.238 m |Z 11.288 m | For R5|Adr 0066|KR A111158|X 12.768 m |Y 43.716 m |Z 11.172 m | For R5|Adr 0067|KR A111159|X 12.448 m |Y 44.216 m |Z 11.163 m | For R5|Adr 0068|KR A111160|X 12.118 m |Y 44.604 m |Z 11.178 m | For R5|Adr 0069|KR A111161|X 11.848 m |Y 44.362 m |Z 11.121 m | For R5|Adr 0070|KR A111162|X 12.126 m |Y 43.917 m |Z 11.127 m | For R5|Adr 0071|KR A111163|X 12.788 m |Y 43.016 m |Z 11.234 m | For R5|Adr 0072|KR A111164|X 13.160 m |Y 42.513 m |Z 11.213 m | For R5|Adr 0073|KR A111165|X 12.218 m |Y 42.487 m |Z 11.149 m | For R5|Adr 0074|KR A111166|X 11.667 m |Y 42.551 m |Z 11.171 m | For R5|Adr 0075|KR A111167|X 11.611 m |Y 43.212 m |Z 11.137 m | For R5|Adr 0076|KR A111168|X 12.004 m |Y 43.461 m |Z 11.126 m | For R5|Adr 0077|KR A111169|X 11.569 m |Y 43.688 m |Z 11.177 m | For R5|Adr 0078|KR A111170|X 11.485 m |Y 44.125 m |Z 11.117 m | For R5|Adr 0079|KR A111171|X 10.553 m |Y 43.975 m |Z 11.179 m | For R5|Adr 0080|KR A111172|X 10.190 m |Y 44.403 m |Z 11.194 m | For R5|Adr 0081|KR A111173|X 10.876 m |Y 45.435 m |Z 11.199 m | For R5|Adr 0082|KR 3051174|X 27.679 m |Y 61.099 m |Z 11.408 m | For R5|Adr 0083|KR 3051175|X 26.522 m |Y 60.634 m |Z 11.396 m | For R5|Adr 0084|KR 3051176|X 25.544 m |Y 60.073 m |Z 11.351 m | For R5|Adr 0085|KR 3051177|X 24.438 m |Y 60.437 m |Z 11.333 m | For R5|Adr 0086|KR 3051178|X 22.634 m |Y 61.513 m |Z 11.430 m | For R5|Adr 0087|KR 3051179|X 26.546 m |Y 61.062 m |Z 11.417 m | For R5|Adr 0088|KR 3051180|X 24.653 m |Y 61.281 m |Z 11.382 m | For R5|Adr 0089|KR 3051181|X 22.948 m |Y 61.919 m |Z 11.448 m | For R5|Adr 0090|KR 3331182|X 25.376 m |Y 57.008 m |Z 11.311 m | For R5|Adr 0091|KR 3331183|X 25.818 m |Y 57.539 m |Z 11.339 m | For R5|Adr 0092|KR 3331184|X 26.022 m |Y 57.987 m |Z 11.404 m | For R5|Adr 0093|KR 3331185|X 25.714 m |Y 58.464 m |Z 11.379 m | For R5|Adr 0094|KR 3331186|X 25.640 m |Y 57.768 m |Z 11.374 m | For R5|Adr 0095|KR 3331187|X 27.677 m |Y 59.584 m |Z 11.418 m | For R5|Adr 0096|KR 3331188|X 26.408 m |Y 58.726 m |Z 11.411 m | For R5|Adr 0097|KR 3331189|X 28.915 m |Y 56.979 m |Z 11.422 m | For R5|Adr 0098|KR 3331190|X 26.751 m |Y 55.508 m |Z 11.365 m | For R5|Adr 0099|KR 3331191|X 25.814 m |Y 54.409 m |Z 11.363 m | For R5|Adr 0100|KR 3331192|X 23.828 m |Y 52.894 m |Z 11.307 m | For R5|Adr 0101|KR 3331193|X 23.173 m |Y 55.113 m |Z 11.308 m | For R5|Adr 0102|KR 3331194|X 24.808 m |Y 55.711 m |Z 11.314 m | For R5|Adr 0103|KR 3371195|X 19.030 m |Y 50.233 m |Z 11.334 m | For R5|Adr 0104|KR 3371196|X 19.248 m |Y 50.487 m |Z 11.391 m | For R5|Adr 0105|KR 3371197|X 20.529 m |Y 50.622 m |Z 11.306 m | For R5|Adr 0106|KR 3371198|X 19.699 m |Y 51.000 m |Z 11.324 m | For R5|Adr 0107|KR 3371199|X 19.725 m |Y 51.685 m |Z 11.306 m | For R5|Adr 0108|KR 3371200|X 20.334 m |Y 52.560 m |Z 11.272 m | For R5|Adr 0109|KR 3371201|X 20.020 m |Y 52.803 m |Z 11.267 m | For R5|Adr 0110|KR 3371202|X 19.085 m |Y 52.538 m |Z 11.318 m | For R5|Adr 0111|KR 3371203|X 17.963 m |Y 51.615 m |Z 11.299 m | For R5|Adr 0112|KR 3371204|X 17.676 m |Y 51.081 m |Z 11.338 m | For R5|Adr 0113|KR 3371205|X 18.668 m |Y 51.459 m |Z 11.320 m | For R5|Adr 0114|KR 3381206|X 21.885 m |Y 54.431 m |Z 11.291 m | For R5|Adr 0115|KR 3381207|X 21.427 m |Y 54.140 m |Z 11.283 m | For R5|Adr 0116|KR 3381208|X 20.770 m |Y 54.085 m |Z 11.262 m | For R5|Adr 0117|KR 3381209|X 20.651 m |Y 53.116 m |Z 11.269 m | For R5|Adr 0118|KR 3381210|X 19.824 m |Y 53.636 m |Z 11.283 m | For R5|Adr 0119|KR 3381211|X 19.238 m |Y 54.025 m |Z 11.329 m | For R5|Adr 0120|KR 3381212|X 19.482 m |Y 54.453 m |Z 11.337 m | For R5|Adr 0121|KR 3381213|X 20.386 m |Y 54.887 m |Z 11.331 m | For R5|Adr 0122|KR 3381214|X 21.095 m |Y 55.323 m |Z 11.354 m | For R5|Adr 0123|KR 3381215|X 20.703 m |Y 54.490 m |Z 11.328 m | For R5|Adr 0124|KR 3391216|X 19.481 m |Y 57.806 m |Z 11.321 m | For R5|Adr 0125|KR 3391217|X 15.661 m |Y 57.153 m |Z 11.431 m | For R5|Adr 0126|KR 3391218|X 14.859 m |Y 56.763 m |Z 11.282 m | For R5|Adr 0127|KR 3391219|X 15.442 m |Y 56.222 m |Z 11.336 m | For R5|Adr 0128|KR 3391220|X 15.651 m |Y 56.335 m |Z 11.343 m | For R5|Adr 0129|KR 3391221|X 16.354 m |Y 55.626 m |Z 11.311 m | For R5|Adr 0130|KR 3391222|X 16.577 m |Y 54.898 m |Z 11.288 m | For R5|Adr 0131|KR 3391223|X 16.176 m |Y 54.342 m |Z 11.250 m | For R5|Adr 0132|KR 3391224|X 16.896 m |Y 52.202 m |Z 11.318 m | For R5|Adr 0133|KR 3391225|X 16.713 m |Y 55.181 m |Z 11.308 m | For R5|Adr 0134|KR 3391226|X 16.784 m |Y 54.815 m |Z 11.314 m | For R5|Adr 0135|KR 3391227|X 17.186 m |Y 54.970 m |Z 11.302 m | For R5|Adr 0136|KR 3391228|X 18.005 m |Y 55.954 m |Z 11.357 m | For R5|Adr 0137|KR 3391229|X 18.185 m |Y 55.663 m |Z 11.349 m | For R5|Adr 0138|KR 3391230|X 18.502 m |Y 55.906 m |Z 11.360 m | For R5|Adr 0139|KR 3391231|X 18.336 m |Y 56.226 m |Z 11.366 m | For R5|Adr 0140|KR 3391232|X 19.330 m |Y 56.873 m |Z 11.418 m | For R5|Adr 0141|KR 3391233|X 19.507 m |Y 56.658 m |Z 11.398 m | For R5|Adr 0142|KR 3391234|X 19.764 m |Y 56.829 m |Z 11.394 m | For R5|Adr 0143|KR 3391235|X 19.598 m |Y 57.059 m |Z 11.401 m | For R5|Adr 0144|KR 3391236|X 20.264 m |Y 52.899 m |Z 11.254 m | For R5|Adr 0145|KR 3391237|X 16.891 m |Y 53.721 m |Z 11.221 m | For R5|Adr 0146|KR 3391238|X 18.435 m |Y 54.968 m |Z 11.345 m | For R5|Adr 0147|KR 3401239|X 16.092 m |Y 55.146 m |Z 11.223 m | For R5|Adr 0148|KR 3401240|X 15.762 m |Y 55.993 m |Z 11.268 m | For R5|Adr 0149|KR ORD1241|X 18.092 m |Y 50.354 m |Z 11.405 m | END totalopenstation-0.5.3/sample_data/zeiss_elta_r55/zeiss_elta_r55-REC_500.tops000066400000000000000000000243211477035261600270110ustar00rootroot00000000000000 0001 OR.COOR 0002 506A X 58.670 Y -59.853 0003 m 1.002785 Om 399.9670 0004 506S X 63.174 Y -107.371 Z 0.000 0005 POLAR 0006 507S Z 157.454 0007 508 0863 X 77.688 Y -91.484 Z 156.261 0008 509 0863 X 78.045 Y -91.269 Z 156.234 0009 510 0863 X 77.913 Y -90.771 Z 156.217 0010 511 0863 X 77.413 Y -91.035 Z 156.296 0011 512 0863 X 77.211 Y -90.464 Z 156.257 0012 513 0863 X 77.457 Y -90.480 Z 156.254 0013 514 0863 X 77.224 Y -89.775 Z 156.243 0014 515 0863 X 76.917 Y -89.818 Z 156.205 0015 516 0863 X 76.639 Y -89.333 Z 156.145 0016 517 0821 X 75.642 Y -93.038 Z 157.256 0017 518 0821 X 76.177 Y -92.818 Z 157.234 0018 519 0821 X 75.868 Y -92.713 Z 157.171 0019 520 0821 X 75.505 Y -92.517 Z 157.266 0020 521 0821 X 75.541 Y -92.513 Z 157.093 0021 522 0821 X 75.721 Y -92.396 Z 156.998 0022 523 0821 X 76.054 Y -92.205 Z 156.770 0023 524 0821 X 76.133 Y -92.346 Z 156.763 0024 525 0821 X 75.986 Y -92.571 Z 156.900 0025 526 0821 X 76.224 Y -92.748 Z 156.968 0026 527 0821 X 76.242 Y -92.655 Z 156.876 0027 528 0821 X 76.281 Y -92.742 Z 156.891 0028 529 0821 X 76.453 Y -92.511 Z 156.399 0029 530 0821 X 76.450 Y -92.252 Z 156.328 0030 531 0821 X 76.451 Y -92.119 Z 156.322 0031 532 0821 X 76.155 Y -92.248 Z 156.318 0032 533 0866 X 75.553 Y -92.380 Z 156.219 0033 534 0866 X 73.867 Y -88.883 Z 156.329 0034 535 0866 X 76.606 Y -89.317 Z 156.157 0035 536 0866 X 77.074 Y -90.326 Z 156.156 0036 537 0866 X 77.037 Y -90.877 Z 156.143 0037 538 0866 X 76.012 Y -91.068 Z 156.254 0038 539 0866 X 76.355 Y -91.946 Z 156.222 0039 540 0869 X 76.483 Y -91.912 Z 156.145 0040 541 0869 X 77.208 Y -91.607 Z 156.044 0041 542 0869 X 76.938 Y -90.946 Z 156.067 0042 543 0869 X 76.115 Y -91.086 Z 156.192 0043 544 0867 X 77.390 Y -91.562 Z 156.157 0044 545 0867 X 77.546 Y -91.577 Z 156.127 0045 546 0867 X 77.412 Y -91.146 Z 156.192 0046 547 0867 X 77.126 Y -90.388 Z 156.122 0047 548 0867 X 76.925 Y -90.565 Z 156.011 0048 549 0867 X 77.029 Y -90.759 Z 156.110 0049 550 0867 X 76.924 Y -90.896 Z 156.065 0050 551 0867 X 77.208 Y -91.195 Z 156.181 0051 552 0867 X 77.206 Y -91.592 Z 156.049 0052 553 0842 X 74.012 Y -89.387 Z 156.732 0053 554 0842 X 74.277 Y -89.875 Z 156.730 0054 555 0842 X 74.477 Y -90.157 Z 156.721 0055 556 0842 X 74.627 Y -90.327 Z 156.745 0056 557 0842 X 74.765 Y -90.599 Z 156.678 0057 558 0842 X 74.806 Y -90.597 Z 156.615 0058 559 0842 X 74.921 Y -90.841 Z 156.639 0059 560 0842 X 74.932 Y -90.936 Z 156.668 0060 561 0842 X 75.063 Y -91.093 Z 156.685 0061 562 0842 X 74.990 Y -91.174 Z 156.356 0062 563 0842 X 75.217 Y -91.539 Z 156.425 0063 564 0842 X 75.344 Y -91.946 Z 156.316 0064 565 0842 X 75.506 Y -92.359 Z 156.328 0065 566 0787 X 68.977 Y -94.079 Z 155.835 0066 567 0787 X 68.867 Y -94.147 Z 155.853 0067 568 0787 X 68.959 Y -94.230 Z 155.834 0068 569 0787 X 70.592 Y -93.100 Z 155.789 0069 570 0787 X 71.029 Y -94.151 Z 155.867 0070 571 0787 X 71.640 Y -94.235 Z 155.851 0071 POLAR 0072 572 0503 X 73.259 Y -90.881 Z 156.702 0073 573 0503 X 73.812 Y -90.553 Z 156.701 0074 574 0503 X 74.067 Y -91.020 Z 156.903 0075 575 0503 X 73.448 Y -91.361 Z 156.893 0076 576 A28 X 72.702 Y -92.823 Z 156.620 0077 577 A28 X 72.994 Y -91.954 Z 156.644 0078 578 A28 X 73.952 Y -91.487 Z 156.654 0079 579 A28 X 74.274 Y -92.195 Z 156.748 0080 580 852 X 73.058 Y -97.237 Z 156.776 0081 581 852 X 73.080 Y -96.628 Z 156.807 0082 582 852 X 71.400 Y -95.832 Z 156.510 0083 583 852 X 71.079 Y -95.851 Z 156.589 0084 584 852 X 70.300 Y -96.047 Z 156.441 0085 585 852 X 70.701 Y -96.341 Z 156.476 0086 586 852 X 70.433 Y -96.922 Z 156.518 0087 587 853 X 69.642 Y -96.841 Z 156.385 0088 588 853 X 69.601 Y -96.252 Z 156.251 0089 589 854 X 68.642 Y -96.371 Z 155.924 0090 590 854 X 68.963 Y -96.846 Z 156.154 0091 591 854 X 68.925 Y -96.691 Z 156.087 0092 592 854 X 68.659 Y -96.706 Z 156.068 0093 593 855 X 68.614 Y -96.842 Z 156.193 0094 594 855 X 68.177 Y -96.795 Z 156.207 0095 595 855 X 68.228 Y -94.037 Z 156.080 0096 596 725 X 69.494 Y -97.546 Z 157.223 0097 597 725 X 69.521 Y -96.972 Z 157.106 0098 598 725 X 68.918 Y -96.942 Z 157.063 0099 599 725 X 68.579 Y -96.879 Z 156.896 0100 600 725 X 67.726 Y -97.408 Z 157.023 0101 601 725 X 68.022 Y -96.842 Z 156.681 0102 602LIMIT X 67.918 Y -96.789 Z 156.713 0103 603LIMIT X 68.033 Y -93.418 Z 156.624 0104 604 A22 X 73.779 Y -83.536 Z 156.555 0105 605 A22 X 73.376 Y -83.711 Z 156.529 0106 606 A22 X 73.873 Y -85.134 Z 156.696 0107 607 A22 X 73.959 Y -84.654 Z 156.586 0108 608 A22 X 72.483 Y -85.148 Z 156.544 0109 609 A22 X 73.273 Y -85.001 Z 156.587 0110 610 A22 X 72.438 Y -84.703 Z 156.464 0111 611 A22 X 72.580 Y -84.443 Z 156.547 0112 612 A22 X 72.875 Y -83.911 Z 156.584 0113 613 A22 X 73.293 Y -83.260 Z 156.475 0114 614 A22 X 73.643 Y -82.628 Z 156.491 0115 615 A22 X 72.909 Y -83.676 Z 156.573 0116 616 A22 X 73.216 Y -83.034 Z 156.477 0117 617 A22 X 73.155 Y -85.334 Z 156.448 0118 618 A22 X 73.435 Y -84.670 Z 156.414 0119 619 A22 X 73.156 Y -83.838 Z 156.450 0120 620 872 X 70.946 Y -94.307 Z 155.880 0121 621 872 X 70.986 Y -95.225 Z 155.868 0122 622 872 X 70.254 Y -94.361 Z 155.843 0123 623 872 X 70.407 Y -95.304 Z 155.834 0124 624 872 X 69.645 Y -94.451 Z 155.843 0125 625 872 X 69.691 Y -94.909 Z 155.835 0126 626 872 X 69.764 Y -95.306 Z 155.822 0127 627 872 X 69.250 Y -95.063 Z 155.803 0128 628 872 X 69.085 Y -94.570 Z 155.802 END totalopenstation-0.5.3/sample_data/zeiss_elta_r55/zeiss_elta_r55-R_E.tops000066400000000000000000000431211477035261600264600ustar00rootroot00000000000000For M5|Adr 00001|TI OR.COOR | | | | For M5|Adr 00002|PI1 0A |X 0.000 m |Y 0.000 m | | For M5|Adr 00003|TI |m 0.999198 |Om 21.9645 grd | | For M5|Adr 00004|PI1 0S |X 23.926 m |Y 46.475 m |Z 0.000 m | For M5|Adr 00005|TI POLAR | | | | For M5|Adr 00006|TI INPUT |th 1.500 m |ih 1.486 m | | For M5|Adr 00007|PI1 1S | | |Z 12.232 m | For M5|Adr 00008|PI1 1100CONTR |X 21.259 m |Y 59.620 m |Z 11.256 m | For M5|Adr 00009|PI1 1101CONTR |X 21.735 m |Y 50.712 m |Z 11.312 m | For M5|Adr 00010|PI1 11020067R |X 9.004 m |Y 53.352 m |Z 11.448 m | For M5|Adr 00011|PI1 11030067R |X 9.305 m |Y 53.038 m |Z 11.365 m | For M5|Adr 00012|PI1 11040067R |X 8.595 m |Y 52.309 m |Z 11.377 m | For M5|Adr 00013|PI1 11050067R |X 7.742 m |Y 51.665 m |Z 11.392 m | For M5|Adr 00014|PI1 11060067R |X 7.256 m |Y 51.377 m |Z 11.429 m | For M5|Adr 00015|PI1 11070067R |X 6.236 m |Y 51.390 m |Z 11.384 m | For M5|Adr 00016|PI1 11080067R |X 6.554 m |Y 50.896 m |Z 11.334 m | For M5|Adr 00017|PI1 11090067R |X 5.593 m |Y 50.870 m |Z 11.329 m | For M5|Adr 00018|PI1 11100067R |X 5.966 m |Y 50.478 m |Z 11.379 m | For M5|Adr 00019|PI1 1111 A6 |X 10.750 m |Y 51.494 m |Z 11.246 m | For M5|Adr 00020|PI1 1112 A6 |X 8.943 m |Y 50.303 m |Z 11.247 m | For M5|Adr 00021|PI1 1113 A6 |X 9.078 m |Y 51.508 m |Z 11.230 m | For M5|Adr 00022|PI1 1114 A6 |X 9.517 m |Y 52.891 m |Z 11.206 m | For M5|Adr 00023|PI1 1115 A6 |X 7.714 m |Y 51.514 m |Z 11.175 m | For M5|Adr 00024|PI1 1116 A6 |X 7.858 m |Y 49.914 m |Z 11.247 m | For M5|Adr 00025|PI1 1117 A6 |X 7.598 m |Y 50.743 m |Z 11.247 m | For M5|Adr 00026|PI1 1118 A6 |X 6.671 m |Y 50.679 m |Z 11.229 m | For M5|Adr 00027|PI1 1119 A6 |X 7.129 m |Y 49.371 m |Z 11.296 m | For M5|Adr 00028|PI1 1120A6SOS |X 8.763 m |Y 49.915 m |Z 11.336 m | For M5|Adr 00029|PI1 1121A6SOS |X 8.680 m |Y 50.009 m |Z 11.311 m | For M5|Adr 00030|PI1 1122A6SOS |X 8.603 m |Y 49.945 m |Z 11.322 m | For M5|Adr 00031|PI1 1123A6SOS |X 8.656 m |Y 49.858 m |Z 11.342 m | For M5|Adr 00032|PI1 1124A6SOS |X 8.655 m |Y 50.230 m |Z 11.263 m | For M5|Adr 00033|PI1 1125A6SOS |X 8.558 m |Y 50.364 m |Z 11.250 m | For M5|Adr 00034|PI1 1126A6SOS |X 8.440 m |Y 50.326 m |Z 11.269 m | For M5|Adr 00035|PI1 1127A6SOS |X 8.503 m |Y 50.099 m |Z 11.284 m | For M5|Adr 00036|PI1 1128A6SOS |X 8.405 m |Y 50.639 m |Z 11.222 m | For M5|Adr 00037|PI1 1129A6SOS |X 8.167 m |Y 50.771 m |Z 11.207 m | For M5|Adr 00038|PI1 1130A6SOS |X 8.101 m |Y 50.681 m |Z 11.219 m | For M5|Adr 00039|PI1 1131A6SOS |X 8.268 m |Y 50.518 m |Z 11.232 m | For M5|Adr 00040|PI1 1132A6SOS |X 9.037 m |Y 51.129 m |Z 11.261 m | For M5|Adr 00041|PI1 1133A6SOS |X 8.967 m |Y 51.317 m |Z 11.245 m | For M5|Adr 00042|PI1 1134A6SOS |X 8.787 m |Y 51.234 m |Z 11.253 m | For M5|Adr 00043|PI1 1135A6SOS |X 8.877 m |Y 51.065 m |Z 11.229 m | For M5|Adr 00044|PI1 1136A6SOS |X 8.397 m |Y 51.870 m |Z 11.234 m | For M5|Adr 00045|PI1 1137A6SOS |X 8.327 m |Y 51.985 m |Z 11.230 m | For M5|Adr 00046|PI1 1138A6SOS |X 8.260 m |Y 51.912 m |Z 11.239 m | For M5|Adr 00047|PI1 1139A6SOS |X 9.287 m |Y 52.367 m |Z 11.219 m | For M5|Adr 00048|PI1 1140A6SOS |X 9.178 m |Y 52.489 m |Z 11.226 m | For M5|Adr 00049|PI1 1141A6SOS |X 9.150 m |Y 52.378 m |Z 11.241 m | For M5|Adr 00050|PI1 1142A6SOS |X 10.427 m |Y 51.788 m |Z 11.203 m | For M5|Adr 00051|PI1 1143A6SOS |X 10.374 m |Y 51.769 m |Z 11.200 m | For M5|Adr 00052|PI1 1144A6SOS |X 10.291 m |Y 51.933 m |Z 11.201 m | For M5|Adr 00053|PI1 1145A6SOS |X 10.416 m |Y 51.929 m |Z 11.209 m | For M5|Adr 00054|PI1 1146 A10 |X 11.528 m |Y 45.985 m |Z 11.239 m | For M5|Adr 00055|PI1 1147 A10 |X 13.644 m |Y 47.203 m |Z 11.267 m | For M5|Adr 00056|PI1 1148 A10 |X 13.592 m |Y 45.029 m |Z 11.190 m | For M5|Adr 00057|PI1 1149 A10 |X 15.378 m |Y 44.347 m |Z 11.245 m | For M5|Adr 00058|PI1 1150 A10 |X 13.518 m |Y 43.398 m |Z 11.221 m | For M5|Adr 00059|PI1 1151 A11R |X 13.431 m |Y 42.713 m |Z 11.298 m | For M5|Adr 00060|PI1 1152 A11R |X 12.315 m |Y 44.395 m |Z 11.190 m | For M5|Adr 00061|PI1 1153 A11R |X 11.288 m |Y 45.855 m |Z 11.263 m | For M5|Adr 00062|PI1 1154 A11R |X 9.847 m |Y 44.880 m |Z 11.280 m | For M5|Adr 00063|PI1 1155 A11R |X 10.863 m |Y 43.319 m |Z 11.254 m | For M5|Adr 00064|PI1 1156 A11R |X 12.019 m |Y 41.732 m |Z 11.295 m | For M5|Adr 00065|PI1 1157 A11 |X 13.081 m |Y 43.238 m |Z 11.288 m | For M5|Adr 00066|PI1 1158 A11 |X 12.768 m |Y 43.716 m |Z 11.172 m | For M5|Adr 00067|PI1 1159 A11 |X 12.448 m |Y 44.216 m |Z 11.163 m | For M5|Adr 00068|PI1 1160 A11 |X 12.118 m |Y 44.604 m |Z 11.178 m | For M5|Adr 00069|PI1 1161 A11 |X 11.848 m |Y 44.362 m |Z 11.121 m | For M5|Adr 00070|PI1 1162 A11 |X 12.126 m |Y 43.917 m |Z 11.127 m | For M5|Adr 00071|PI1 1163 A11 |X 12.788 m |Y 43.016 m |Z 11.234 m | For M5|Adr 00072|PI1 1164 A11 |X 13.160 m |Y 42.513 m |Z 11.213 m | For M5|Adr 00073|PI1 1165 A11 |X 12.218 m |Y 42.487 m |Z 11.149 m | For M5|Adr 00074|PI1 1166 A11 |X 11.667 m |Y 42.551 m |Z 11.171 m | For M5|Adr 00075|PI1 1167 A11 |X 11.611 m |Y 43.212 m |Z 11.137 m | For M5|Adr 00076|PI1 1168 A11 |X 12.004 m |Y 43.461 m |Z 11.126 m | For M5|Adr 00077|PI1 1169 A11 |X 11.569 m |Y 43.688 m |Z 11.177 m | For M5|Adr 00078|PI1 1170 A11 |X 11.485 m |Y 44.125 m |Z 11.117 m | For M5|Adr 00079|PI1 1171 A11 |X 10.553 m |Y 43.975 m |Z 11.179 m | For M5|Adr 00080|PI1 1172 A11 |X 10.190 m |Y 44.403 m |Z 11.194 m | For M5|Adr 00081|PI1 1173 A11 |X 10.876 m |Y 45.435 m |Z 11.199 m | For M5|Adr 00082|PI1 1174 0305 |X 27.679 m |Y 61.099 m |Z 11.408 m | For M5|Adr 00083|PI1 1175 0305 |X 26.522 m |Y 60.634 m |Z 11.396 m | For M5|Adr 00084|PI1 1176 0305 |X 25.544 m |Y 60.073 m |Z 11.351 m | For M5|Adr 00085|PI1 1177 0305 |X 24.438 m |Y 60.437 m |Z 11.333 m | For M5|Adr 00086|PI1 1178 0305 |X 22.634 m |Y 61.513 m |Z 11.430 m | For M5|Adr 00087|PI1 1179 0305 |X 26.546 m |Y 61.062 m |Z 11.417 m | For M5|Adr 00088|PI1 1180 0305 |X 24.653 m |Y 61.281 m |Z 11.382 m | For M5|Adr 00089|PI1 1181 0305 |X 22.948 m |Y 61.919 m |Z 11.448 m | For M5|Adr 00090|PI1 1182 0333 |X 25.376 m |Y 57.008 m |Z 11.311 m | For M5|Adr 00091|PI1 1183 0333 |X 25.818 m |Y 57.539 m |Z 11.339 m | For M5|Adr 00092|PI1 1184 0333 |X 26.022 m |Y 57.987 m |Z 11.404 m | For M5|Adr 00093|PI1 1185 0333 |X 25.714 m |Y 58.464 m |Z 11.379 m | For M5|Adr 00094|PI1 1186 0333 |X 25.640 m |Y 57.768 m |Z 11.374 m | For M5|Adr 00095|PI1 1187 0333 |X 27.677 m |Y 59.584 m |Z 11.418 m | For M5|Adr 00096|PI1 1188 0333 |X 26.408 m |Y 58.726 m |Z 11.411 m | For M5|Adr 00097|PI1 1189 0333 |X 28.915 m |Y 56.979 m |Z 11.422 m | For M5|Adr 00098|PI1 1190 0333 |X 26.751 m |Y 55.508 m |Z 11.365 m | For M5|Adr 00099|PI1 1191 0333 |X 25.814 m |Y 54.409 m |Z 11.363 m | For M5|Adr 00100|PI1 1192 0333 |X 23.828 m |Y 52.894 m |Z 11.307 m | For M5|Adr 00101|PI1 1193 0333 |X 23.173 m |Y 55.113 m |Z 11.308 m | For M5|Adr 00102|PI1 1194 0333 |X 24.808 m |Y 55.711 m |Z 11.314 m | For M5|Adr 00103|PI1 1195 0337 |X 19.030 m |Y 50.233 m |Z 11.334 m | For M5|Adr 00104|PI1 1196 0337 |X 19.248 m |Y 50.487 m |Z 11.391 m | For M5|Adr 00105|PI1 1197 0337 |X 20.529 m |Y 50.622 m |Z 11.306 m | For M5|Adr 00106|PI1 1198 0337 |X 19.699 m |Y 51.000 m |Z 11.324 m | For M5|Adr 00107|PI1 1199 0337 |X 19.725 m |Y 51.685 m |Z 11.306 m | For M5|Adr 00108|PI1 1200 0337 |X 20.334 m |Y 52.560 m |Z 11.272 m | For M5|Adr 00109|PI1 1201 0337 |X 20.020 m |Y 52.803 m |Z 11.267 m | For M5|Adr 00110|PI1 1202 0337 |X 19.085 m |Y 52.538 m |Z 11.318 m | For M5|Adr 00111|PI1 1203 0337 |X 17.963 m |Y 51.615 m |Z 11.299 m | For M5|Adr 00112|PI1 1204 0337 |X 17.676 m |Y 51.081 m |Z 11.338 m | For M5|Adr 00113|PI1 1205 0337 |X 18.668 m |Y 51.459 m |Z 11.320 m | For M5|Adr 00114|PI1 1206 0338 |X 21.885 m |Y 54.431 m |Z 11.291 m | For M5|Adr 00115|PI1 1207 0338 |X 21.427 m |Y 54.140 m |Z 11.283 m | For M5|Adr 00116|PI1 1208 0338 |X 20.770 m |Y 54.085 m |Z 11.262 m | For M5|Adr 00117|PI1 1209 0338 |X 20.651 m |Y 53.116 m |Z 11.269 m | For M5|Adr 00118|PI1 1210 0338 |X 19.824 m |Y 53.636 m |Z 11.283 m | For M5|Adr 00119|PI1 1211 0338 |X 19.238 m |Y 54.025 m |Z 11.329 m | For M5|Adr 00120|PI1 1212 0338 |X 19.482 m |Y 54.453 m |Z 11.337 m | For M5|Adr 00121|PI1 1213 0338 |X 20.386 m |Y 54.887 m |Z 11.331 m | For M5|Adr 00122|PI1 1214 0338 |X 21.095 m |Y 55.323 m |Z 11.354 m | For M5|Adr 00123|PI1 1215 0338 |X 20.703 m |Y 54.490 m |Z 11.328 m | For M5|Adr 00124|PI1 1216 0339 |X 19.481 m |Y 57.806 m |Z 11.321 m | For M5|Adr 00125|PI1 1217 0339 |X 15.661 m |Y 57.153 m |Z 11.431 m | For M5|Adr 00126|PI1 1218 0339 |X 14.859 m |Y 56.763 m |Z 11.282 m | For M5|Adr 00127|PI1 1219 0339 |X 15.442 m |Y 56.222 m |Z 11.336 m | For M5|Adr 00128|PI1 1220 0339 |X 15.651 m |Y 56.335 m |Z 11.343 m | For M5|Adr 00129|PI1 1221 0339 |X 16.354 m |Y 55.626 m |Z 11.311 m | For M5|Adr 00130|PI1 1222 0339 |X 16.577 m |Y 54.898 m |Z 11.288 m | For M5|Adr 00131|PI1 1223 0339 |X 16.176 m |Y 54.342 m |Z 11.250 m | For M5|Adr 00132|PI1 1224 0339 |X 16.896 m |Y 52.202 m |Z 11.318 m | For M5|Adr 00133|PI1 1225 0339 |X 16.713 m |Y 55.181 m |Z 11.308 m | For M5|Adr 00134|PI1 1226 0339 |X 16.784 m |Y 54.815 m |Z 11.314 m | For M5|Adr 00135|PI1 1227 0339 |X 17.186 m |Y 54.970 m |Z 11.302 m | For M5|Adr 00136|PI1 1228 0339 |X 18.005 m |Y 55.954 m |Z 11.357 m | For M5|Adr 00137|PI1 1229 0339 |X 18.185 m |Y 55.663 m |Z 11.349 m | For M5|Adr 00138|PI1 1230 0339 |X 18.502 m |Y 55.906 m |Z 11.360 m | For M5|Adr 00139|PI1 1231 0339 |X 18.336 m |Y 56.226 m |Z 11.366 m | For M5|Adr 00140|PI1 1232 0339 |X 19.330 m |Y 56.873 m |Z 11.418 m | For M5|Adr 00141|PI1 1233 0339 |X 19.507 m |Y 56.658 m |Z 11.398 m | For M5|Adr 00142|PI1 1234 0339 |X 19.764 m |Y 56.829 m |Z 11.394 m | For M5|Adr 00143|PI1 1235 0339 |X 19.598 m |Y 57.059 m |Z 11.401 m | For M5|Adr 00144|PI1 1236 0339 |X 20.264 m |Y 52.899 m |Z 11.254 m | For M5|Adr 00145|PI1 1237 0339 |X 16.891 m |Y 53.721 m |Z 11.221 m | For M5|Adr 00146|PI1 1238 0339 |X 18.435 m |Y 54.968 m |Z 11.345 m | For M5|Adr 00147|PI1 1239 0340 |X 16.092 m |Y 55.146 m |Z 11.223 m | For M5|Adr 00148|PI1 1240 0340 |X 15.762 m |Y 55.993 m |Z 11.268 m | For M5|Adr 00149|PI1 1241 CORD |X 18.092 m |Y 50.354 m |Z 11.405 m | END totalopenstation-0.5.3/scripts/000077500000000000000000000000001477035261600166305ustar00rootroot00000000000000totalopenstation-0.5.3/scripts/totalopenstation-cli-connector.py000077500000000000000000000061541477035261600253570ustar00rootroot00000000000000#! /usr/bin/env python3 # -*- coding: utf-8 -*- # filename: totalopenstation-cli-connector.py # Copyright 2021 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import gettext import sys import os from optparse import OptionParser import serial from totalopenstation.models import BUILTIN_MODELS t = gettext.translation('totalopenstation', './locale', fallback=True) _ = t.gettext usage = _("Usage: %prog [option] arg1 [option] arg2 ...") parser = OptionParser(usage=usage) parser.add_option("-m", "--model", action="store", type="string", dest="model", help=_("Select input MODEL"), metavar="MODEL") parser.add_option("-p", "--port", action="store", type="string", dest="port", help=_("Select input SERIAL PORT"), metavar="PORT") parser.add_option("-o", "--outfile", action="store", type="string", dest="outfile", help=_("Select output FILE (do not specify for stdout)"), metavar="FILE") (options, args) = parser.parse_args() if not (options.model and options.port): sys.exit(_("Please specify your model and the port to download from")) modelclass = BUILTIN_MODELS[options.model] # import input format parser if isinstance(modelclass, tuple): try: # builtin format parser mod, cls, name = modelclass modelclass = getattr( __import__('totalopenstation.models.%s' % mod, None, None, [cls]), cls) except ImportError as msg: sys.exit(_('Error loading the required model module: %s') % msg) station = modelclass(options.port) try: station.close() # sometimes the port will be already open for no reason station.open() except serial.SerialException as detail: sys.exit(detail) print(_("Now you can start download from %s device") % options.model) station.start() station.dl_started.wait() print(_("Download started...")) station.dl_finished.wait() print(_("Download finished...")) result = station.result if options.outfile: if not os.path.exists(options.outfile): e = open(options.outfile, "wb") e.write(result) e.close() print(_("Downloaded data saved to out file %s") % options.outfile) else: sys.exit(_("Specified output file already exists\n")) else: sys.stdout.write(result) totalopenstation-0.5.3/scripts/totalopenstation-cli-parser.py000077500000000000000000000163571477035261600246670ustar00rootroot00000000000000#! /usr/bin/env python3 # -*- coding: utf-8 -*- # filename: totalopenstation-cli-parser.py # Copyright 2008-2013 Stefano Costa # Copyright 2015-2016 Damien Gaignon # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import sys import os import gettext import importlib import logging from optparse import OptionParser import totalopenstation.formats import totalopenstation.output t = gettext.translation('totalopenstation', './locale', fallback=True) _ = t.gettext usage = _("Usage: %prog [option] arg1 [option] arg2 ...") parser = OptionParser(usage=usage) parser.add_option("-i", "--infile", action="store", type="string", dest="infile", help=_("Select input FILE (do not specify for stdin)"), metavar="FILE") parser.add_option("-o", "--outfile", action="store", type="string", dest="outfile", help=_("Select output FILE (do not specify for stdout)"), metavar="FILE") parser.add_option("-f", "--input-format", action="store", type="string", dest="informat", help=_("Select input FORMAT"), metavar="FORMAT") parser.add_option("--2d", action="store_true", dest="xy_only", help=_("Exclude Z coordinates, output only 2D data"), metavar="ONLY2D") parser.add_option("-t", "--output-format", action="store", type="string", dest="outformat", help=_("Select input FORMAT"), metavar="FORMAT") parser.add_option("-r", "--raw", action="store_true", dest="raw", help=_("Enhanced parsed file process")) parser.add_option( "--overwrite", action="store_true", dest="overwrite", default=False, help=_("Overwrite existing output file")) parser.add_option( "--list", action="store_true", dest="list", default=False, help=_("List the available input and output formats")) parser.add_option( "--log", action="store", dest="loglevel", default="WARNING", type="string", help=_("Minimum log level")) parser.add_option( "--logtofile", action="store_true", dest="logotfile", default=False, help=_("Log to file")) (options, args) = parser.parse_args() logger = logging.getLogger() logger.setLevel(options.loglevel.upper()) if options.logotfile: handler = logging.FileHandler("tops.log") else: handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s -- %(filename)s -- %(levelname)s -- %(funcName)s -- %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) def list_formats(): '''Print a list of the supported input and output formats.''' mod_string = _("List of supported input formats:\n%s\n") % ('-' * 30) for k, v in sorted(totalopenstation.formats.BUILTIN_INPUT_FORMATS.items()): mod_string += "%s%s\n" % (k.ljust(20), v[2]) mod_string += "\n\n" mod_string += _("List of supported output formats:\n%s\n") % ('-' * 30) for k, v in sorted(totalopenstation.output.BUILTIN_OUTPUT_FORMATS.items()): mod_string += "%s%s\n" % (k.ljust(20), v[2]) mod_string += "\n" return mod_string if options.list: sys.stdout.write(list_formats()) sys.exit() def exit_with_error(message): sys.exit(_("\nError:\n%(message)s\n\n%(formats)s") % {'message': message, 'formats': list_formats()}) if options.informat: try: inputclass = totalopenstation.formats.BUILTIN_INPUT_FORMATS[options.informat] except KeyError as message: exit_with_error(_('%s is not a valid input format') % message) else: if isinstance(inputclass, tuple): try: # builtin format parser mod, cls, name = inputclass inputclass = getattr(importlib.import_module('totalopenstation.formats.%s' % mod), cls) except ImportError as message: exit_with_error(message) else: sys.exit(_("Please specify an input format")) if options.outformat: try: outputclass = totalopenstation.output.BUILTIN_OUTPUT_FORMATS[options.outformat] except KeyError as message: exit_with_error(_('%s is not a valid output format') % message) else: if isinstance(outputclass, tuple): try: # builtin output builder mod, cls, name = outputclass outputclass = getattr(importlib.import_module('totalopenstation.output.%s' % mod), cls) except ImportError as message: exit_with_error(message) if options.infile: infile = open(options.infile, 'r').read() else: if sys.stdin.isatty(): sys.exit(_('No input data!')) else: infile = sys.stdin.read() def main(infile): '''After setting up all parameters, finally try to process input data.''' parsed_data = inputclass(infile) if options.raw: parsed_points = parsed_data.raw_line else: parsed_points = parsed_data.points # processing options if options.xy_only: for feature in parsed_points: geom_cls = getattr(totalopenstation.formats, feature.geometry.geom_type) try: feature.geometry = geom_cls(feature.geometry.x, feature.geometry.y) except: feature.geometry = geom_cls([(p.x, p.y) for p in feature.geometry.geoms]) output = outputclass(parsed_points) def write_to_file(outfile): e = open(outfile, 'w') e.write(output.process()) e.close() if options.outfile: if not os.path.exists(options.outfile): write_to_file(options.outfile) logger.info(_("Downloaded data saved to out file %s") % options.outfile) else: if options.overwrite: write_to_file(options.outfile) logger.info(_("Downloaded data saved to file %s,") % options.outfile) logger.info(_("Overwriting the existing file")) else: sys.exit(_("Specified output file already exists\n")) else: sys.stdout.write(output.process()) if __name__ == '__main__': main(infile) totalopenstation-0.5.3/scripts/totalopenstation-gui.py000077500000000000000000000776301477035261600234130ustar00rootroot00000000000000#! /usr/bin/env python3 # -*- coding: utf-8 -*- # filename: totalopenstation-gui.py # Copyright 2008-2019 Stefano Costa # Copyright 2010,2012 Luca Bianconi # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import serial import gettext import atexit from time import sleep from tkinter import * from tkinter.messagebox import showwarning, showinfo, askokcancel import tkinter.simpledialog import tkinter.filedialog import totalopenstation from totalopenstation.models import BUILTIN_MODELS from totalopenstation.formats import BUILTIN_INPUT_FORMATS from totalopenstation.output import BUILTIN_OUTPUT_FORMATS from totalopenstation.utils.upref import UserPrefs t = gettext.translation('totalopenstation', './locale', fallback=True) _ = t.gettext def scan(): """scan for available ports. return a list of tuples (num, name). Part of pySerial (http://pyserial.sf.net) Copytight 2002-2003 """ # TODO move this function in a separate module together with scanwin32.py # and add conditional loading depending on the operating system available = [] for i in range(256): try: s = serial.Serial(i) available.append((i, s.portstr)) s.close() #explicit close 'cause of delayed GC in java except serial.SerialException: pass return available # logo GIF image encoded as base64 string # this way we don't need external an external image file logo_data = ''' R0lGODlhMAAwAOfIAC40NjA2NzY6ODw+O0g8MEBBP09JOVRMO1hPP0NDQk9MQVRWVFhaV1tcW2Rn\n ZGZpZm1ubHFzbnV3c3h7dnx+ebw/P8wAAM8NDdEGBtQLC9gNDcUcHM4ZGdMTE98XF9MdHd8ZGc8q\n KtM3N9Y7O+8pKeM7O/A0NJ1QEbV6MM5cAMFeDdBfBcJfEcVgDc1lDtFgA9xqA9BjCtVoCcNhE8hm\n FMVlGtRvHdVyFdJzHeVuAexzAPJ2APV5AfV+CsduJspzLtJ0IMx3M8t4Nd5aWuRJSPFERPFLS+Nc\n XNZ7W990dOJjY+hnZ+Jsa/FgYPFsbON0dPV2dvR5eX6AfL2JPPaDDPaFE/eKFPaGGfeNG/iSHd6B\n Jd6DKd2FMtyEPMmRPOmNKPeMJO+XLfeSJPiWIfmZJfWULPmbKumQMOmVPveVNfKcM/mfMfmfOvqg\n LfqkMvmlO/yuPYCCfc+ESNCFSMmZT9WSXPGgRPerQvuuQvGiSPerSvquSfywQ/yySfemVfinV/ev\n U/qsUfuzVPy4VPq1WPy6Xdqhc9yoffmvYvmxZfy+Zfq1avu8beereuiufvu7c/3CbPzDdPzEe/3J\n fYOFgYeIg4qNh46RjJCUkLGOjqmsprW1tb66ut+ehe2Hh+2Li/aWlveYmN+wi+Cvh+CwieK3leW9\n nPrHgP3Lgv3Oif3Skv3WnenHrenIrv7apvXTrf7fsfLTuv7gtv7iuMHBwcrKytra2u7Vwunazeve\n 0/Lf0O3h1+3h2PPg0v7t1Pbp3+Xl5ezs7PHl5fHr6/vs7Pnx6vPz8/z38///////////////////\n ////////////////////////////////////////////////////////////////////////////\n ////////////////////////////////////////////////////////////////////////////\n /////////////////////////////////////////////////////yH5BAEAAP8ALAAAAAAwADAA\n AAj+AP8JHEiwoMBYNlIoXJjCRiyDECNKhGjjla+LFx/98WNjoseP/xotlKWqZEkeORim6AKy5cAU\n s1ylUKWoZk0eM1OhiqQohUuXMOGkiASnaFGcqo6m8fkTZNATCgIEMDAFDs5UR8swbeoRppcEEyhR\n cDDAC05UR8Fs5SoRJgJKDBIssIQJAc5JadeyhQhTQKUEmxpUuiTg7tErevcWhHlgwgIGEKQ8OICT\n qNUqiRW/nOWlgARKjgfQ0QrpaI/Mmv8FRUFAKoETC0tbxZma76yjtF8qwo1ac9DZKl8U4l3b4G81\n YZIrV2OUR+7iA1fImgXL1SpVqSZFglRoUB8+zl/+QCfoSKV5lY7GRwTAII4mTZciLACgfuIRAPjz\n 51dSH+ITT05gYMGAA2LQxBFP9EcQMR+AUgIUEDZhhAkklBBFB8QoKNATn4SiARQkhCiiBlEskaCC\n DIJihAUgihiiBUVcmGF/TxARCgksuvgiCVGUcGJ9TxCYo45CMqEgKVwwwgOLRhDJAyNckNJfMSxE\n gsWSFgxB4AUD8oBFJCwUU18daATCgw4zpIAIFWxakcIMOvAQCBp1qNcLDZFQwYMLpqSQCJtUYJGC\n KS7wQAUjNPQynhB5sIGSD6otYsWkgv7jQw48sGGHENC1AoQizrVwS6STWiGGT7e04FwhOLRSXA3+\n gIjBAwxzCJTCIljkeqpAc8DAgxh61FDbKFsIwsMOKvxiKyNZNGsGU7+osAMPe2gximbFzEBIFTzI\n YMhLj4wh7rMDGSIDD1XsMYOYe9VxxhtnzkBQCo+QYe8aa8HJwxpf1MmWLjQIoief80ZixsFurEUo\n Dz3gQYMubAWhhhmPLiZJGxi/odelPIxRRhBcsYJDH6GOOq8kbqSscUGpOufGDaw0VcMbV8Igh3Eo\n pyyUQXL4aoUZwrpUyg1uxMvLQMEkncIpbzSNRwpJBzPQLvqacYMoLnVCoBC5/BN10sCkgFZRfKQA\n zNdS4/IDgUi49AEIHSQh0NfA1C22UX2YXfdx1wKNkIEHFrQUjAUZiDDM3FHXHfYpqHB3h95nRy2Q\n MB0IKLVHwNBiQQWc2IJ04sAcEsNCMRyyt+QC2cLJBhbQAsxHwdhiy+sEoZ20BTjafvlAwMi+e23B\n ABNCBhycraFEwdSSiQWZ1PL78Qb1TrtiAQEAOw==\n''' class StatusBar(Frame): '''A status bar for Tkinter applications. From: http://effbot.org/tkinterbook/tkinter-application-windows.htm ''' def __init__(self, master): Frame.__init__(self, master) self.label = Label(self, bd=1, relief=SUNKEN, anchor=W) self.label.pack(fill=X) def set(self, format, *args): self.label.config(text=format % args) self.label.update_idletasks() def clear(self): self.label.config(text="") self.label.update_idletasks() class AboutDialog(tkinter.simpledialog.Dialog): def body(self, master): title = "Total Open Station %s" % totalopenstation.__version__ message = _(""" Total Open Station is copyright 2008-2019 Stefano Costa, Damien Gaignon, Luca Bianconi and the IOSA project, under the GNU GPL v3 or any later version. https://tops.iosa.it/ The application logo is copyright 2008 Lapo Calamandrei under the same license.""") self.logo_data = logo_data self.logo = PhotoImage(data=self.logo_data) Label(master, image=self.logo).pack() Label(master, text=title, font=("Helvetica", "16", "bold")).pack() Label(master, text=message).pack() def buttonbox(self): box = Frame(self) w = Button(box, text="OK", width=10, command=self.cancel, default=ACTIVE) w.pack(side=LEFT, padx=5, pady=5) self.bind("<Return>", self.cancel) self.bind("<Escape>", self.cancel) box.pack() class DownloadDialog(tkinter.simpledialog.Dialog): def body(self, master): title = "Total Open Station download" message = _(""" Press OK when you're ready to download.\n Depending on your device, you may need to start the transfer from\n the total station menu.""") Label(master, text=title, font=("Helvetica", "16", "bold")).pack() self.msg_var = StringVar() self.msg_var.set(message) self.msg = Label(master, textvariable=self.msg_var) self.msg.pack() def apply(self): self.result = True class ConnectDialog(tkinter.simpledialog.Dialog): def __init__(self, parent, cs): self.conn_str = cs tkinter.simpledialog.Dialog.__init__(self, parent) def body(self, master): title = _("Waiting for data from device") message1 = _("Connection initialized with the following parameters:\n") params = "%s\n" % self.conn_str message2 = _("\nStart the download procedure on the device.\n") message2 += _("Press OK when done.") Label(master, bitmap="hourglass").pack() Label(master, text=title, font=("Helvetica", "16", "bold")).pack() Label(master, text=message1).pack() t = Text(master, width=80) t.insert(END, params) t.pack() Label(master, text=message2, fg="red").pack() class ProcessDialog(tkinter.simpledialog.Dialog): def __init__(self, parent, data): self.data = data self.format = '' tkinter.simpledialog.Dialog.__init__(self, parent) def body(self, master): title = _("Choose output format and destination file") question = _("Output format:\n") top_frame = Frame(master) top_frame.pack(side=TOP, padx=5, pady=5) control_panel0 = Frame(master) control_panel0.pack( side=TOP, expand=YES, anchor=S, fill=Y, padx=5, pady=5) bottom_frame = Frame(master) bottom_frame.pack(side=TOP, anchor=S) Label(top_frame, bitmap="question").pack(side=TOP, anchor=N) Label(top_frame, text=title).pack(side=TOP, anchor=N) output_frame = Frame(control_panel0, relief=RIDGE, bd=1) input_frame = Frame(control_panel0, relief=RIDGE, bd=1) input_frame.pack(side=TOP) output_frame.pack(side=TOP) params = "%s\n" % self.data Label(input_frame, text=_('Input format'), width=20).pack(side=LEFT) self.input_format = StringVar() self.input_format.set(self.format) input_format_entry = Menubutton(input_frame, text=_("Choose a format"), textvariable=self.input_format, relief=RAISED, width=24) input_format_entry.menu = Menu(input_format_entry, tearoff=0) input_format_entry["menu"] = input_format_entry.menu for k, v in sorted(BUILTIN_INPUT_FORMATS.items()): input_format_entry.menu.add_radiobutton( label=v[2], variable=self.input_format, value=k) input_format_entry.pack(side=LEFT, anchor=W) Label(output_frame, text=_('Output format'), width=20).pack(side=LEFT) self.output_format = StringVar() self.output_format.set(self.format) output_format_entry = Menubutton(output_frame, text=_("Choose a format"), textvariable=self.output_format, relief=RAISED, width=24) output_format_entry.menu = Menu(output_format_entry, tearoff=0) output_format_entry["menu"] = output_format_entry.menu for k, v in sorted(BUILTIN_OUTPUT_FORMATS.items()): output_format_entry.menu.add_radiobutton( label=v[2], variable=self.output_format, value=k) output_format_entry.pack(side=LEFT, anchor=W) def validate(self): # do nothing if input is empty if self.output_format.get() == '' or self.input_format.get() == '': return False else: return True def apply(self): '''Export data in the required output format''' inputclass = BUILTIN_INPUT_FORMATS[self.input_format.get()] # import input format parser if isinstance(inputclass, tuple): try: # builtin format parser mod, cls, name = inputclass inputclass = getattr( __import__('totalopenstation.formats.%s' % mod, None, None, [cls]), cls) except ImportError as msg: showwarning(_('Import error'), _('Error loading the required input module: %s') % msg) # import output format writer of_lower = str(self.output_format.get()).lower() outputclass = BUILTIN_OUTPUT_FORMATS[self.output_format.get()] if isinstance(outputclass, tuple): try: # builtin output builder mod, cls, name = outputclass outputclass = getattr( __import__('totalopenstation.output.%s' % mod, None, None, [cls]), cls) except ImportError as msg: showwarning(_('Import error'), _('Error loading the required output module: %s') % msg) # no point in parsing before the output format has been imported parsed_data = inputclass(self.data) parsed_points = parsed_data.points output = outputclass(parsed_points) sd = tkinter.filedialog.asksaveasfilename(defaultextension='.%s' % of_lower) try: sd_file = open(sd, 'w') except TypeError: showwarning(_("No output file specified"), _("No processing settings entered!\n")) else: sd_file.write(output.process()) sd_file.close() class PreferencesDialog(tkinter.simpledialog.Dialog): '''A dialog to change preferences and options.''' class ErrorDialog(tkinter.simpledialog.Dialog): def __init__(self, parent, message): self.message = message tkinter.simpledialog.Dialog.__init__(self, parent) def body(self, master): title = _("Error") message1 = _("Connection failed with the following error message:\n") message2 = _("\nCheck your connection parameters and try again.\n") Label(master, bitmap="error", fg="red").pack() Label(master, text=title, font=("Helvetica", "16", "bold")).pack() Label(master, text=message1).pack() t = Entry(master, width=80) t.insert(END, self.message) t.pack() Label(master, text=message2).pack() def buttonbox(self): box = Frame(self) w = Button(box, text=_("Cancel"), width=10, command=self.cancel, default=ACTIVE) w.pack(side=LEFT, padx=5, pady=5) self.bind("<Return>", self.cancel) self.bind("<Escape>", self.cancel) box.pack() class Tops: def __init__(self, parent): #init user's preferences config file object self.upref = UserPrefs() buttons_width = 8 imb_buttonx = "2m" imb_buttony = "1m" imb_buttons_framex = "3m" imb_buttons_framey = "2m" imb_int_buttons_framex = "3m" imb_int_buttons_framey = "1m" self.myParent = parent self.main_frame = Frame(parent) ### self.main_frame.pack(expand=YES, fill=BOTH) #MENU self.menubar = Menu(self.myParent) self.myParent.config(menu=self.menubar) topsmenu = Menu(self.menubar, tearoff=0) topsmenu.add_command(label=_("Connect"), command=self.connect) topsmenu.add_command(label=_("Process data"), command=self.process) topsmenu.add_separator() topsmenu.add_command(label=_("Quit"), command=self.on_app_close) filemenu = Menu(self.menubar, tearoff=0) filemenu.add_command(label=_("Open file"), command=self.open_a_file) filemenu.add_command(label=_("Save raw data"), command=self.save_a_file) helpmenu = Menu(self.menubar, tearoff=0) helpmenu.add_command(label=_("About TOPS"), command=self.about) languagemenu = Menu(self.menubar, tearoff=0) language = StringVar() languagemenu.add_radiobutton(label="English",variable=language,value="en") languagemenu.add_radiobutton(label="Italiano",variable=language,value="it") self.menubar.add_cascade(label="Total Station", menu=topsmenu) self.menubar.add_cascade(label=_("File"), menu=filemenu) #self.menubar.add_cascade(label="Language", menu=languagemenu) self.menubar.add_cascade(label=_("Help"), menu=helpmenu) self.upper_frame = Frame(self.main_frame) ### self.upper_frame.pack(side=TOP, expand=NO, padx=10, pady=5, ipadx=5, ipady=5) self.logo_frame = Frame(self.upper_frame) self.logo_frame.pack(side=LEFT, expand=NO) self.logo_data = logo_data self.logo = PhotoImage(data=self.logo_data) self.logo_canvas = Label(self.logo_frame, image=self.logo) self.logo_canvas.pack(side=LEFT, expand=NO, padx=5, pady=5) self.header_frame = Frame(self.upper_frame) self.header_frame.pack(side=LEFT, expand=NO, pady=5) self.buttons_frame = Frame(self.header_frame) self.buttons_frame.pack( side=TOP, expand=NO, fill=Y, ipadx=5, ipady=5) # default control panel self.control_panel0 = Frame(self.header_frame) self.control_panel0.pack( side=TOP, expand=YES, fill=Y, padx=5, pady=5) # control panel for custom serial connection self.control_panel = Frame(self.header_frame) # option 1 : serial port self.option1_frame = Frame(self.control_panel0, relief=RIDGE, bd=1) self.option1_frame.pack(side=TOP) self.option1_label = Label(self.option1_frame, text=_("Port"), width=30) self.option1_label.pack(side=LEFT) self.option1_value = StringVar() self.option1_value.set(self.upref.getvalue('port')) # Leave this Entry uncommented to enter port as a string, or ... # self.option1_entry = Entry(self.option1_frame, textvariable=self.option1_value, width=20) # ... comment out this Menubutton if you want to use the scan() output # # self.option1_entry = Menubutton(self.option1_frame, # text="choose a value", # textvariable=self.option1_value, # relief=RAISED, # width=24) # self.option1_entry.menu = Menu( self.option1_entry, tearoff=0 ) # self.option1_entry["menu"] = self.option1_entry.menu # for n,s in scan(): # self.option1_entry.menu.add_radiobutton ( label=s, # variable=self.option1_value, # value = s) self.option1_entry.pack(side=LEFT, anchor=W) # option MODEL substitutes all connection parameters for better # user experience self.optionMODEL_frame = Frame( self.control_panel0, relief=RIDGE, bd=1) self.optionMODEL_frame.pack(side=TOP) self.optionMODEL_label = Label(self.optionMODEL_frame, text=_("Total Station"), justify=LEFT, width=30) self.optionMODEL_label.pack(side=LEFT, anchor=E) self.optionMODEL_value = StringVar() self.optionMODEL_value.set(self.upref.getvalue('model')) self.optionMODEL_entry = Menubutton(self.optionMODEL_frame, text=_("Choose a model"), textvariable=self.optionMODEL_value, relief=RAISED, width=20) self.optionMODEL_entry.menu = Menu(self.optionMODEL_entry, tearoff=0) self.optionMODEL_entry["menu"] = self.optionMODEL_entry.menu for k, (l, m, n) in list(BUILTIN_MODELS.items()): self.optionMODEL_entry.menu.add_radiobutton( label=n, variable=self.optionMODEL_value, value=k, command=self.print_model) self.optionMODEL_entry.pack(side=LEFT, anchor=W) # option 2 : baudrate self.option2_frame = Frame(self.control_panel, relief=RIDGE, bd=1) self.option2_frame.pack(side=TOP) self.option2_label = Label(self.option2_frame, text=_("Baudrate"), width=30) self.option2_label.pack(side=LEFT) self.option2_value = IntVar() try: assert serial.baudrate_constants assert serial.baudrate_constants is not {} except (AttributeError, AssertionError): self.option2_entry = Entry(self.option2_frame, textvariable=self.option2_value, width=20) else: self.option2_entry = Menubutton(self.option2_frame, text=_("Choose a value"), textvariable=self.option2_value, relief=RAISED, width=20) self.option2_entry.menu = Menu(self.option2_entry, tearoff=0) self.option2_entry["menu"] = self.option2_entry.menu for key in sorted(serial.baudrate_constants.keys()): # dynamic list self.option2_entry.menu.add_radiobutton( label="%s" % key, variable=self.option2_value, value=key, ) self.option2_entry.pack(side=LEFT, anchor=W) # option 3 : bytesize self.option3_frame = Frame(self.control_panel, relief=RIDGE, bd=1) self.option3_frame.pack(side=TOP) self.option3_label = Label(self.option3_frame, text=_("Bytesize"), justify=LEFT, width=30) self.option3_label.pack(side=LEFT, anchor=E) self.option3_value = IntVar() self.option3_entry = Menubutton(self.option3_frame, text=_("Choose a value"), textvariable=self.option3_value, relief=RAISED, width=20) self.option3_entry.menu = Menu(self.option3_entry, tearoff=0) self.option3_entry["menu"] = self.option3_entry.menu for v in [8,7,6,5]: self.option3_entry.menu.add_radiobutton(label=str(v), variable=self.option3_value, value=v) self.option3_entry.pack(side=LEFT, anchor=W) # option 4 : parity self.option4_frame = Frame(self.control_panel, relief=RIDGE, bd=1) self.option4_frame.pack(side=TOP) self.option4_label = Label(self.option4_frame, text=_("Parity setting"), justify=LEFT, width=30) self.option4_label.pack(side=LEFT, anchor=E) self.option4_value = StringVar() self.option4_entry = Menubutton(self.option4_frame, text=_("Choose a value"), textvariable=self.option4_value, relief=RAISED, width=20) self.option4_entry.menu = Menu(self.option4_entry, tearoff=0) self.option4_entry["menu"] = self.option4_entry.menu for v in ['Even', 'None', 'Odd']: self.option4_entry.menu.add_radiobutton(label=_(v), variable=self.option4_value, value=v[0]) self.option4_entry.pack(side=LEFT, anchor=W) # option 5 : stop bit self.option5_frame = Frame(self.control_panel, relief=RIDGE, bd=1) self.option5_frame.pack(side=TOP) self.option5_label = Label(self.option5_frame, text=_("Stop bit"), justify=LEFT, width=30) self.option5_label.pack(side=LEFT, anchor=E) self.option5_value = IntVar() self.option5_entry = Menubutton(self.option5_frame, text=_("Choose a value"), textvariable=self.option5_value, relief=RAISED, width=20) self.option5_entry.menu = Menu(self.option5_entry, tearoff=0) self.option5_entry["menu"] = self.option5_entry.menu for v in [1, 2]: self.option5_entry.menu.add_radiobutton(label=str(v), variable=self.option5_value, value=v) self.option5_entry.pack(side=LEFT, anchor=W) # option 6 : time lapse between data packets self.option6_frame = Frame(self.control_panel, relief=RIDGE, bd=1) self.option6_frame.pack(side=TOP) self.option6_label = Label(self.option6_frame, text=_("Time lapse between data packets"), justify=LEFT, width=30) self.option6_label.pack(side=LEFT, anchor=E) self.option6_value = DoubleVar() self.option6_value.set(self.upref.getvalue('sleeptime')) self.option6_entry = Entry(self.option6_frame, textvariable=self.option6_value, relief=RAISED, justify=RIGHT, width=20) self.option6_entry.pack(side=LEFT, anchor=W) # control buttons self.connect_button = Button(self.buttons_frame, text=_("Connect"), padx=imb_buttonx, pady=imb_buttony) self.connect_button.pack(side=LEFT, anchor=S) self.connect_button.bind("", self.connect_action) self.connect_button.bind("", self.connect_action) self.save_button = Button(self.buttons_frame, text=_("Save raw data"), padx=imb_buttonx, pady=imb_buttony) self.save_button.pack(side=LEFT, anchor=S) self.save_button.bind("", self.save_action) self.save_button.bind("", self.save_action) self.process_button = Button(self.buttons_frame, text=_("Process data"), padx=imb_buttonx, pady=imb_buttony) self.process_button.pack(side=LEFT, anchor=S) self.process_button.bind("", self.process_action) self.process_button.bind("", self.process_action) self.status = StatusBar(self.main_frame) self.status.set(_('Welcome to Total Open Station')) self.status.pack(side=BOTTOM, fill=X) # text frame self.text_frame = Frame(self.main_frame) self.text_frame.pack(side=BOTTOM, expand=YES, fill=BOTH) self.text_area = Text(self.text_frame, width=80) self.text_area.insert(END, _("Welcome.\nTurn your device on.")) self.text_area.pack(side=LEFT, expand=YES, fill=Y) self.scrollY = Scrollbar(self.text_frame, orient=VERTICAL, command=self.text_area.yview) self.text_area['yscrollcommand'] = self.scrollY.set self.scrollY.pack(side=RIGHT, expand=YES, fill=Y, anchor=W) # init stuff self.myParent.title("Total Open Station") self.myParent.protocol("WM_DELETE_WINDOW", self.on_app_close) self.print_model() self.myParent.mainloop() def on_click_language(self): ''' open select language dialog ''' pass def on_app_close(self): '''Callback function to ask for confirmation before quitting the application.''' if askokcancel(_("Quit"), _("Do you really want to quit application ?")): self.myParent.destroy() def exit_action(self, event): self.on_app_close() def print_model(self): model = self.optionMODEL_value.get() if model != 'custom': self.control_panel.forget() self.option2_value.set(0) self.option3_value.set(0) self.option4_value.set('') self.option5_value.set(0) else: self.option2_value.set(9600) self.option3_value.set(8) self.option4_value.set('N') self.option5_value.set(1) self.control_panel.pack(side=TOP, expand=YES, fill=Y, ipadx=5, ipady=5) def connect(self): chosen_model = self.optionMODEL_value.get() chosen_port = self.option1_value.get() # do nothing if input is empty if not (chosen_model == '' or chosen_port == ''): if chosen_model == 'custom': # dictionary for passing options to Serial self.options = {'baudrate': self.option2_value.get(), 'bytesize': self.option3_value.get(), 'parity': self.option4_value.get(), 'stopbits': self.option5_value.get()} else: self.options = {} modelclass = BUILTIN_MODELS[chosen_model] if isinstance(modelclass, tuple): try: # builtin model builder mod, cls, name = modelclass modelclass = getattr( __import__('totalopenstation.models.%s' % mod, None, None, [cls]), cls) except ImportError as msg: showwarning(_('Import error'), _('Error loading the required model module: %s') % msg) mc = modelclass(chosen_port, **self.options) try: mc.close() # sometimes the port will be already open for no reason mc.open() except serial.SerialException as detail: e = ErrorDialog(self.myParent, detail) else: st = DownloadDialog(self.myParent) sleeptime = float(self.option6_value.get()) if st.result: self.status.set(_("Waiting for data: Please start the transfer from your total station menu.")) while mc.inWaiting() == 0: sleep(sleeptime) n = mc.inWaiting() result = mc.read(n) self.replace_text(result.decode()) sleep(sleeptime) while mc.inWaiting() > 0: newdata = mc.read(mc.inWaiting()) result += newdata self.status.set(_('Downloaded %d bytes') % len(result)) self.replace_text(result.decode()) sleep(sleeptime) # TODO determine sleep time from baudrate mc.close() showinfo(_('Success!'), _('Download finished!\nYou have %d bytes of data.') % len(result)) def connect_action(self, event): self.connect() def open_a_file(self): try: d = tkinter.filedialog.askopenfilename() of = open(d, 'r') oc = of.read() self.replace_text(oc) except: pass def open_action(self, event): self.open_a_file() def process(self): data = self.text_area.get("1.0", END) d = ProcessDialog(self.myParent, data) def process_action(self, event): self.process() def save_a_file(self): try: sd = tkinter.filedialog.asksaveasfilename(defaultextension='.tops') data = self.text_area.get("1.0", END) of = open(sd, 'w') oc = of.write(data) except: pass def save_action(self, event): self.save_a_file() def about(self): d = AboutDialog(self.myParent) def about_action(self, event): self.about() def replace_text(self, text): self.text_area.delete("1.0", END) self.text_area.insert(END, text.replace('\r', '')) self.text_area.yview_moveto(1.0) self.text_area.update_idletasks() root = Tk() Tops = Tops(root) #save user's preferences (model, port and sleeptime if custom model) atexit.register(Tops.upref.setvalues, {'model': Tops.optionMODEL_value.get(), 'port': Tops.option1_value.get(), 'sleeptime': Tops.option6_value.get(), }) totalopenstation-0.5.3/setup.py000066400000000000000000000026201477035261600166530ustar00rootroot00000000000000from setuptools import setup, find_packages import totalopenstation setup( name='totalopenstation', version=totalopenstation.__version__, author='Stefano Costa', author_email='steko@iosa.it', packages=find_packages(exclude=['ez_setup', 'examples', 'tests', 'gui']), scripts=['scripts/totalopenstation-gui.py', 'scripts/totalopenstation-cli-parser.py', 'scripts/totalopenstation-cli-connector.py'], url='https://tops.iosa.it/', license='GNU GPLv3', description='Download and export survey data from your total station', long_description=open('README.rst').read(), classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: Console', 'Environment :: X11 Applications', 'Intended Audience :: End Users/Desktop', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3 :: Only', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Topic :: Scientific/Engineering :: GIS', ], keywords='survey geodimeter', install_requires=['pyserial==3.4', 'pygeoif==1.4.0'], tests_require=['pytest>=5.1'], include_package_data = True, zip_safe = False, ) totalopenstation-0.5.3/totalopenstation-gui.spec000066400000000000000000000041441477035261600222110ustar00rootroot00000000000000# -*- mode: python -*- a = Analysis(['scripts/totalopenstation-gui.py'], pathex=['.'], hiddenimports=[ 'csv', 'decimal', 'numbers', 'totalopenstation.formats', 'totalopenstation.formats.carlson_rw5', 'totalopenstation.formats.leica_gsi', 'totalopenstation.formats.leica_tcr_705', 'totalopenstation.formats.leica_tcr_1205', 'totalopenstation.formats.nikon_raw_v200', 'totalopenstation.formats.polar', 'totalopenstation.formats.sokkia_sdr33', 'totalopenstation.formats.topcon_gts', 'totalopenstation.formats.trimble_are', 'totalopenstation.formats.zeiss_r5', 'totalopenstation.formats.zeiss_rec_500', 'totalopenstation.models', 'totalopenstation.models.custom', 'totalopenstation.models.leica_tcr_705', 'totalopenstation.models.leica_tcr_1205', 'totalopenstation.models.nikon_npl_350', 'totalopenstation.models.nikon_npl_322plus', 'totalopenstation.models.trimble', 'totalopenstation.models.topcon_gpt_3005', 'totalopenstation.models.zeiss_elta_r55', 'totalopenstation.output', 'totalopenstation.output.tops_csv', 'totalopenstation.output.tops_dat', 'totalopenstation.output.tops_dxf', 'totalopenstation.output.tops_geojson', 'totalopenstation.output.tops_sql', 'totalopenstation.output.tops_txt',], hookspath=None, runtime_hooks=None) pyz = PYZ(a.pure) exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, name='totalopenstation.exe', icon='docs/_static/tops.ico', debug=False, strip=None, upx=False, console=True) totalopenstation-0.5.3/totalopenstation/000077500000000000000000000000001477035261600205505ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/__init__.py000066400000000000000000000001001477035261600226500ustar00rootroot00000000000000# -*- coding: utf-8 -*- __version__ = '0.5.3' import logging totalopenstation-0.5.3/totalopenstation/formats/000077500000000000000000000000001477035261600222235ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/formats/__init__.py000066400000000000000000000141061477035261600243360ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/__init__.py # Copyright 2008-2010 Stefano Costa # Copyright 2008 Luca Bianconi # Copyright 2015-2016 Damien Gaignon # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging import pygeoif from math import pi logger = logging.getLogger(__name__).addHandler(logging.NullHandler()) class Point(pygeoif.Point): def __init__(self, *args, **kwargs): try: pygeoif.Point.__init__(self, *args, **kwargs) except TypeError: float_args = (float(a) for a in args) float_kwargs = dict([a, float(x)] for a, x in kwargs.items()) pygeoif.Point.__init__(self, *float_args, **float_kwargs) class LineString(pygeoif.LineString): pass class Feature(pygeoif.Feature): '''A GeoJSON-like Feature object.''' def __init__(self, geom, desc, id=None, **properties): pygeoif.Feature.__init__(self, geom, properties, feature_id=id) self.properties['desc'] = desc @pygeoif.Feature.geometry.setter def geometry(self, value): '''Set the geometry attribute. By default, geometry property return the geometry value. ''' self._geometry = value @property def desc(self): '''Return the desc property ''' return self.properties['desc'] @property def point_name(self): '''Return the point_name property ''' return self.properties['point_name'] class FeatureCollection(pygeoif.FeatureCollection): pass class Parser: '''Parses a *single* string of raw data. This means that if you plan to load data from a file you have to pass the output of open(file).read() to this class. Args: data (str): A string representing the file to be parsed. Attributes: data (str): A string representing the file to be parsed **could** be overridden by the init method. ''' def __init__(self, data): """Init method which **should** be overridden in the child class to have a working parser.""" self.data = data def is_point(self, line): """Action for finding which parts of the source file are points. This method **must** be overridden in the child class to have a working parser. Returns: A boolean """ pass def get_point(self, line): """Action for getting points from source file. This method **must** be overridden in the child class to have a working parser. Returns: A :class:`formats.Feature` object.""" pass def split_points(self): """Action for splitting points. Defaults to ``splitlines()`` because most formats have one point per line. Override this method if the format is different.""" return self.data.splitlines() def build_linestring(self): '''Join all Point objects into a LineString. Returns: A :class:`formats.LineString` object. ''' points = [f.geometry for f in self.points] return LineString.from_points(*points) @property def points(self): """Action for parsing a source file and for finding points. This method **could** be overridden in the child class to have a working parser. Returns: A list of GeoJSON-like Feature object representing points coordinates. """ self.d = self.split_points() valid_lines = filter(self.is_point, self.d) fg_lines = map(self.get_point, valid_lines) return [p for p in fg_lines if p is not None] @property def raw_line(self): """Action for parsing a source file and for retrieving raw data. This method **must** be overridden in the child class to have a working parser. Returns: A list of GeoJSON-like Feature object representing representing raw data i.e. polar coordinates and other informations. """ pass def check_coordorder(coordorder): '''Check if coordinates order is valid. Args: coordorder (str): A string representing the type of coordinates i.e. NEZ or ENZ. ''' if any((coordorder == v for v in COORDINATE_ORDER)): return coordorder else: logger.info('Invalid coordinate order') BUILTIN_INPUT_FORMATS = { 'carlson_rw5': ('carlson_rw5', 'FormatParser', 'Carlson RW5'), 'landxml': ('landxml', 'FormatParser', 'LandXML'), 'leica_gsi': ('leica_gsi', 'FormatParser', 'Leica GSI'), 'leica_tcr_705': ('leica_tcr_705', 'FormatParser', 'Leica TCR 705'), 'leica_tcr_1205': ('leica_tcr_1205', 'FormatParser', 'Leica TCR 1205'), 'nikon_raw_v200': ('nikon_raw_v200', 'FormatParser','Nikon RAW V2.00'), 'sokkia_sdr33': ('sokkia_sdr33', 'FormatParser', 'Sokkia SDR33'), 'topcon_gts': ('topcon_gts', 'FormatParser', 'Topcon GTS'), 'trimble_are': ('trimble_are', 'FormatParser', 'Trimble AREA'), 'zeiss_r5': ('zeiss_r5', 'FormatParser', 'Zeiss R5'), 'zeiss_rec_500': ('zeiss_rec_500', 'FormatParser', 'Zeiss REC 500'), } UNITS_CIRCLE = { 'dms': 360, 'deg': 360, 'gon': 400, 'mil': 6400, 'rad': 2 * pi, 'grads': 400 } UNKNOWN_STATION = Point(10000, 10000, 100) UNKNOWN_POINT = Point(-1, -1, -1) COORDINATE_ORDER = ('NEZ', 'ENZ') totalopenstation-0.5.3/totalopenstation/formats/carlson_rw5.py000066400000000000000000000415431477035261600250420ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/carlson_rw5.py # Copyright 2014 Stefano Costa # Copyright 2016 Damien Gaignon # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging from totalopenstation.formats.conversion import horizontal_to_slope from . import Feature, Point, UNKNOWN_STATION, UNKNOWN_POINT from .polar import BasePoint, PolarPoint # ussfeet = US Survey Feet # UNITS = {"angle": {"0": "dms", "1": "gon"}, "distance": {"0": "feet", "1": "meter", "2": "ussfeet"}} logger = logging.getLogger(__name__) def _record(recstr): fields = recstr.split(',') record_fields = {f[0:2] : f[2:] for f in fields[1:]} # Record type, including comment records if len(fields[0]) > 2: record_fields['type'] = fields[0].strip('-') record_fields['comment'] = True else: record_fields['type'] = fields[0] # Note field try: record_fields['--'] except KeyError: record_fields['note'] = '' else: record_fields['note'] = record_fields['--'] logger.debug(f"record_fields : {record_fields}") return record_fields class FormatParser: '''The FormatParser for Carlson RW5 data format. Args: data (str): A string representing the file to be parsed. Attributes: rows (list): A list of each lines of the file being parsed which do not begin with '-- '. ''' def __init__(self, data): self.rows = (r for r in data.splitlines() if not r.startswith('-- ')) # Text comments, but not comment records ------------------------^ @property def points(self): '''Extract all RW5 data. This parser is based on the information in :ref:`if_carlson_rw5` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: Notes: Sometimes needed records are commented so it is needed to parse also comments ''' points_coord = {} base_points = {} points = [] pid = 0 for row in self.rows: rec = _record(row) # Get angle and distance units if rec['type'] == 'MO': angle_unit = UNITS["angle"][rec['AU']] dist_unit = UNITS["distance"][rec['UN']] # Look for point coordinates if rec['type'] == 'SP': point_name = rec['PN'] northing = float(rec['N ']) # extra whitespace easting = float(rec['E ']) # extra whitespace elevation = float(rec['EL']) point = Point(easting, northing, elevation) attrib = [rec['note']] f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[point_name] = point # Look for station coordinates if rec['type'] == 'OC': station_name = rec['OP'] northing = float(rec['N ']) # extra whitespace easting = float(rec['E ']) # extra whitespace elevation = float(rec['EL']) station_point = Point(easting, northing, elevation) points_coord[station_name] = station_point bp = BasePoint(x=easting, y=northing, z=elevation, ih=0, b_zero_st=0.0) base_points[station_name] = bp # Look for line of sight values # Finalize station computing if rec['type'] == 'LS': ih = float(rec['HI']) th = float(rec['HR']) attrib = [rec['note']] try: station_point except NameError: logger.info('There is no known station') station_point = UNKNOWN_STATION stf = Feature(station_point, desc='ST', id=pid, point_name=station_name, dist_unit=dist_unit, attrib=attrib) bp = base_points[station_name] bp.ih = ih # Do not add station if previous station record is the same try: last_stf except NameError: last_stf = stf points.append(stf) pid += 1 else: if stf.point_name != last_stf.point_name or \ stf.geometry.x != last_stf.geometry.x or \ stf.geometry.y != last_stf.geometry.y or \ stf.geometry.z != last_stf.geometry.z: points.append(stf) pid += 1 last_stf = stf # Look for polar data if rec['type'] in ('SS', 'TR', 'BD', 'BR', 'FD', 'FR'): point_name = rec['FP'] attrib = [rec['note']] # Angle is recorded as azimuth or horizontal angle try: angle = float(rec['AZ']) except KeyError: # Angle is either Bearing, Angle Right or Left, Deflection Right or Left try: angle = float(rec['BR']) except KeyError: try: angle = float(rec['AR']) except KeyError: try: angle = float(rec['AL']) except KeyError: try: angle = float(rec['DR']) except KeyError: try: angle = float(rec['DL']) except KeyError: logger.info('There is no horizontal angle value') # Vertical angle is either Zenith, Vertical angle or Change elevation try: z_angle = float(rec['ZE']) except KeyError: try: z_angle = float(rec['VA']) except KeyError: try: z_angle = float(rec['CE']) except KeyError: logger.info('There is no vertical angle value') else: z_angle_type = 'dh' else: z_angle_type = 'v' else: z_angle_type= 'z' try: dist = float(rec['SD']) except KeyError: try: dist = float(rec['HD']) except KeyError: logger.info('There is no distance value') else: dist_type = "h" else: dist_type = 's' attrib = [rec['note']] p = PolarPoint(angle_unit=angle_unit, z_angle_type=z_angle_type, dist_type=dist_type, dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=point_name, coordorder='ENZ') point = p.to_point() f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 logger.debug(points) return points @property def raw_line(self): '''Extract all Carlson RW5 data. This parser is based on the information in :ref:`if_carlson_rw5` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: Notes: Information needed are: - station : Occupy Point and Line of Sight - backsight : Backsight - direct point : Store Point - computed point : Foresight Direct/Reverse, Traverse/Sideshot, Backsight Direct/Reverse Sometimes needed records are commented so it is needed to parse also comments ''' points_coord = {} points = [] pid = 0 station_id = 1 for row in self.rows: rec = _record(row) # Get angle and distance units if rec['type'] == 'MO': angle_unit = UNITS["angle"][rec['AU']] dist_unit = UNITS["distance"][rec['UN']] # Look for point coordinates if rec['type'] == 'SP': point_name = rec['PN'] northing = float(rec['N ']) # extra whitespace easting = float(rec['E ']) # extra whitespace elevation = float(rec['EL']) point = Point(easting, northing, elevation) attrib = [rec['note']] f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[point_name] = point # Look for station coordinates if rec['type'] == 'OC': station_name = rec['OP'] northing = float(rec['N ']) # extra whitespace easting = float(rec['E ']) # extra whitespace elevation = float(rec['EL']) station_point = Point(easting, northing, elevation) points_coord[station_name] = station_point # Look for line of sight values # Finalize station computing if rec['type'] == 'LS': ih = float(rec['HI']) th = float(rec['HR']) attrib = [rec['note']] try: station_point except NameError: logger.info('There is no known station') station_point = UNKNOWN_STATION station_name = f'station_{station_id}' points_coord[station_name] = station_point stf = Feature(station_point, desc='ST', id=pid, point_name=station_name, angle_unit=angle_unit, dist_unit=dist_unit, ih=ih, attrib=attrib) # Do not add station if previous station record is the same try: last_stf except NameError: last_stf = stf points.append(stf) pid += 1 else: if stf.point_name != last_stf.point_name or \ stf.geometry.x != last_stf.geometry.x or \ stf.geometry.y != last_stf.geometry.y or \ stf.geometry.z != last_stf.geometry.z or \ stf.properties['ih'] != last_stf.properties['ih']: points.append(stf) pid += 1 last_stf = stf # Look for back sight values if rec['type'] == 'BK': point_name = rec['BP'] circle = rec['BC'] try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT f = Feature(point, desc='BS', id=pid, point_name=point_name, angle_unit=angle_unit, circle=circle) points.append(f) pid += 1 # Look for polar data if rec['type'] in ('SS', 'TR', 'BD', 'BR', 'FD', 'FR'): point_name = rec['FP'] # Angle is recorded as azimuth or horizontal angle try: azimuth = float(rec['AZ']) except KeyError: azimuth = None # Angle is either Bearing, Angle Right or Left, Deflection Right or Left try: angle = float(rec['BR']) except KeyError: try: angle = float(rec['AR']) except KeyError: try: angle = float(rec['AL']) except KeyError: try: angle = float(rec['DR']) except KeyError: try: angle = float(rec['DL']) except KeyError: logger.info('There is no horizontal angle value') angle = None # Vertical angle is either Zenith, Vertical angle or Change elevation try: z_angle = float(rec['ZE']) except KeyError: try: z_angle = float(rec['VA']) except KeyError: try: z_angle = float(rec['CE']) except KeyError: logger.info('There is no vertical angle value') z_angle = None else: z_angle_type = 'dh' else: z_angle_type = 'v' else: z_angle_type = 'z' try: dist = float(rec['SD']) except KeyError: try: dist = float(rec['HD']) except KeyError: logger.info('There is no distance value') dist = None else: dist_type = 'h' else: dist_type = 's' attrib = [rec['note']] try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT try: station_name except UnboundLocalError: logger.info('There is no known station') station_name = f'station_{station_id}' station_id += 1 f = Feature(point, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type=z_angle_type, dist_unit=dist_unit, dist_type=dist_type, azimuth=azimuth, angle=angle, z_angle=z_angle, dist=dist, th=th, station_name=station_name, attrib=attrib) points.append(f) pid += 1 logger.debug(points) return points totalopenstation-0.5.3/totalopenstation/formats/conversion.py000066400000000000000000000123161477035261600247650ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_txt.py # Copyright 2008 Luca Bianconi # Copyright 2008,2011 Stefano Costa # Copyright 2015-2016 Damien Gaignon # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from math import sin,cos, pi def deg_to_gon(angle): '''Convert degrees format to grade (gon) format.''' return angle * 400 / 360 def deg_to_rad(angle): '''Convert degrees format to radian format.''' return angle * (2 * pi) / 360 def deg_to_mil(angle): return angle * 6400 / 360 def deg_to_dms(angle): d, m = divmod(angle, 1) m, s = divmod(m * 100, 1) return d + m * 60 / 10000 + s * 100 * 3600 / 100000000 def dms_to_deg(angle): '''Convert degrees in DDD.MMSS format to degree format.''' d, m = divmod(angle, 1) m, s = divmod(m * 100, 1) return d + m / 60 + s * 100 / 3600 def dms_to_gon(angle): '''Convert degrees in DDD.MMSS format to grade (gon) format.''' angle = dms_to_deg(angle) return deg_to_gon(angle) def dms_to_rad(angle): '''Convert degrees in DDD.MMSS format to radians format.''' angle = dms_to_deg(angle) return deg_to_rad(angle) def dms_to_mil(angle): '''Convert degrees in DDD.MMSS format to radians format.''' angle = dms_to_deg(angle) return deg_to_mil(angle) def rad_to_deg(angle): return angle * 360 / (2 * pi) def rad_to_dms(angle): angle = rad_to_deg(angle) return deg_to_dms(angle) def rad_to_gon(angle): return angle * 400 / (2 * pi) def rad_to_mil(angle): return angle * 6400 / (2* pi) def mil_to_gon(angle): '''Convert degrees in mil (NATO) format to grade (gon) format.''' return angle * 400 / 6400 def mil_to_rad(angle): '''Convert degrees in mil (NATO) format to radian format.''' return angle * (2 * pi) / 6400 def mil_to_deg(angle): return angle * 360 / 6400 def mil_to_dms(angle): angle = mil_to_deg(angle) return deg_to_dms(angle) def gon_to_rad(angle): '''Convert grade (gon) format to radian format.''' return angle * (2 * pi) / 400 def gon_to_deg(angle): return angle * 360 / 400 def gon_to_dms(angle): angle = gon_to_deg(angle) return deg_to_dms(angle) def gon_to_mil(angle): return angle * 6400 / 400 def to_rad(angle, angle_unit): '''Conversion function for angles to radian''' if angle_unit == "dms": return dms_to_rad(angle) elif angle_unit == "mil": return mil_to_rad(angle) elif angle_unit == "deg": return deg_to_rad(angle) else: return gon_to_rad(angle) def to_deg(angle, angle_unit): '''Conversion function for angles to degree''' if angle_unit == "dms": return dms_to_deg(angle) elif angle_unit == "mil": return mil_to_deg(angle) elif angle_unit == "rad": return rad_to_deg(angle) else: return gon_to_deg(angle) def to_gon(angle, angle_unit): '''Conversion function for angles to degree''' if angle_unit == "dms": return dms_to_gon(angle) elif angle_unit == "mil": return mil_to_gon(angle) elif angle_unit == "rad": return rad_to_gon(angle) else: return deg_to_gon(angle) def to_dms(angle, angle_unit): '''Conversion function for angles to degree''' if angle_unit == "gon" or angle_unit == "grads": return gon_to_dms(angle) elif angle_unit == "mil": return mil_to_dms(angle) elif angle_unit == "rad": return rad_to_dms(angle) else: return deg_to_dms(angle) def to_mil(angle, angle_unit): '''Conversion function for angles to degree''' if angle_unit == "dms": return dms_to_mil(angle) elif angle_unit == "gon" or angle_unit == "grads": return gon_to_mil(angle) elif angle_unit == "rad": return rad_to_mil(angle) else: return deg_to_mil(angle) def vertical_to_zenithal(angle, angle_unit): '''Convert angle from vertical (reference is horizontal) to zenithal (reference is north)''' if angle_unit == "dms": return to_dms(90 - to_deg(angle, angle_unit), "deg") elif angle_unit == "gon" or angle_unit == "grads": return 100 - angle elif angle_unit == "rad": return (pi / 2) - angle else: return 90 - angle def horizontal_to_slope(dist, angle, angle_unit, angle_type="z"): '''Convert distance to slope from horizontal Angle is considered zenithal by default''' angle = to_rad(angle, angle_unit) if angle_type == "z": return dist / sin (angle) else: return dist / cos (angle) totalopenstation-0.5.3/totalopenstation/formats/landxml.py000066400000000000000000000631731477035261600242460ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: landxml.py # Copyright 2015 Damien Gaignon # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from totalopenstation.formats.conversion import vertical_to_zenithal import xml.etree.ElementTree as xml import time import re import os from . import Feature, Parser, Point, UNKNOWN_STATION, UNKNOWN_POINT from .polar import BasePoint, PolarPoint # Template string TEMPLATE = ''' ''' DEFAULT_NS = "http://www.landxml.org/schema/LandXML-1.2" DECLARATION = '' def _indent(elem, level=0): """ A function to indent a XML Element for pretty printing :param elem: The element to parse :param level: The level of the element in the hierarchy :return: The element ready to be pretty printed Note : Taken from https://stackoverflow.com/questions/749796/pretty-printing-xml-in-python/4590052#4590052 """ tab = '\t' i = f"\n{(level + 1)*tab}" j = f"\n{level*tab}" count = 1 if len(elem): if elem.text is None or elem.text.strip() is None: elem.text = i for subelem in elem: _indent(subelem, level+1) if subelem.tail is None or subelem.tail.strip() is None: subelem.tail = i elif re.match(r"\s", subelem.tail): subelem.tail = i count += 1 if count == len(elem) + 1: subelem.tail = j return elem class Survey: """ Populate the survey tag of LandXML. Tags should be in order (convention): - SurveyHeader - Equipment - CgPoints - InstrumentSetup0 - InstrumentSetupX - ObservationGroup0 - ObservationGroupX """ def __init__(self): """ Initialize the Survey header tag """ self.survey = xml.Element("Survey") xml.SubElement(self.survey, "SurveyHeader", name="from TOPS") self.id = 0 def _tag_position(self, tag): """ Search the position of the tag to be in the right order """ mainTags = ("SurveyHeader", "Equipment", "CgPoints", "InstrumentSetup") if tag in mainTags: pos = 0 for index in range(mainTags.index(tag)): if self.survey.find(f"./{mainTags[index]}") is not None: pos += 1 else: pos = 1 if tag == "InstrumentSetup": pos += len(self.survey.findall("./InstrumentSetup")) return pos if tag == "CgPoint": cgpoints = self.survey.find("CgPoints") pos = len(cgpoints.findall("./CgPoint")) return pos def equipment(self, **kwargs): """ Populate the Equipment tag. No attribut is mandatory so kwargs can be empty. Arguments in kwargs for Equipment: TODO """ # kwargs = {key: str(value) if value is not None else value for key,value in kwargs.items()} # Verification of position of the element pos = self._tag_position('Equipment') # Creation of Equipment tag, subelement of Survey equipment = xml.Element("Equipment") self.survey.insert(pos, equipment) def cg_point(self, **kwargs): """ Populate the CgPoints and CgPoint tags. No attribut is mandatory so kwargs can be empty. Arguments in kwargs for CgPoint: - point_name -> name attrib of CgPoint part of CgPoints - pid -> pntRef attrib of CgPoint part of CgPoints - x -> x coordinate element of CgPoint part of CgPoints - y -> y coordinate element of CgPoint part of CgPoints - z -> z coordinate element of CgPoint part of CgPoints - attrib -> attribX attrib of Property part of Feature All Feature tags should be after Cgpoint ones """ # kwargs = {key: str(value) if value is not None else value for key,value in kwargs.items()} # Verification of position of the element pos = self._tag_position('CgPoints') # Creation of CgPoints tag, subelement of Survey if it does not exist cgpoints = self.survey.find("./CgPoints") if cgpoints is None: cgpoints = xml.Element("CgPoints") self.survey.insert(pos, cgpoints) # Creation of CgPoint tag, subelement of CgPoints cgpoint = xml.Element("CgPoint") cgpoints.insert(self._tag_position('CgPoint'), cgpoint) # Fill of CgPoint attributes if "point_name" in kwargs: cgpoint.set("name", str(kwargs["point_name"])) if "pid" in kwargs: cgpoint.set("pntRef", str(kwargs["pid"])) if "x" in kwargs: cgpoint.text = f"{kwargs['x']} {kwargs['y']}" if "z" in kwargs: cgpoint.text += f" {kwargs['z']}" # attrib is not mandatory in CgPoints so this is a feature if "attrib" in kwargs: cgpoint.set("featureRef", f"feature{kwargs['point_name']}") feature = xml.Element("Feature") feature.set("name", f"feature{kwargs['point_name']}") # feature_property for i in range(len(kwargs["attrib"])): xml.SubElement(feature, "Property", label=f"attrib{i + 1}", value=str(kwargs["attrib"][i])) cgpoints.append(feature) def setup(self, **kwargs): """ Populate the InstrumentSetup and ObservationGroup tags. InstrumentSetup is not a mandatory tag. Some attributes are mandatory but can be empty (so kwargs can be empty). Arguments in kwargs for InstrumentSetup (attrib mandatory as attrib*): - point_name -> stationName attrib* of InstrumentSetup - ih -> instrumentHeight attrib* of InstrumentSetup - pid -> pntRef attrib of InstrumentPoint part of InstrumentSetup - instru_x -> x coordinate element of InstrumentPoint part of InstrumentSetup - instru_y -> y coordinate element of InstrumentPoint part of InstrumentSetup - instru_z -> z coordinate element of InstrumentPoint part of InstrumentSetup - attrib -> attribX attrib of Property part of Feature Arguments in kwargs for Observationgroup (attrib mandatory as attrib*): - circle -> azimuth attrib* of Backsight part of ObservationGroup - back_name -> name attrib of BacksightPoint part of Backsight - back_x -> x coordinate element of BacksightPoint part of Backsight - back_y -> y coordinate element of BacksightPoint part of Backsight - back_z -> z coordinate element of BacksightPoint part of Backsight """ # kwargs = {key: str(value) if value is not None else value for key,value in kwargs.items()} # Verification of position of the element pos = self._tag_position('InstrumentSetup') # Creation of InstrumentSetup tag, subelement of Survey instrument_setup = xml.Element("InstrumentSetup", id=f"setup{self.id}", stationName="", instrumentHeight="") # Fill of InstrumentSetup attributes if "point_name" in kwargs: instrument_setup.set("stationName", str(kwargs["point_name"])) if "ih" in kwargs: instrument_setup.set("instrumentHeight", str(kwargs["ih"])) if "hz0" in kwargs: instrument_setup.set("orientationAzimuth", str(kwargs["hz0"])) # attrib is not mandatory in InstrumentSetup so this is a feature if "attrib" in kwargs and kwargs["attrib"]: if instrument_setup.find("./Feature") is None: feature = xml.SubElement(instrument_setup, "Feature") # feature_property for i in range(len(kwargs["attrib"])): xml.SubElement(feature, "Property", label=f"attrib{i + 1}", value=str(kwargs["attrib"][i])) # Creation of InstrumentPoint tag, subelement of InstrumentSetup instrument_point = xml.SubElement(instrument_setup, "InstrumentPoint") # Fill of InstrumentPoint attributes if "pid" in kwargs: instrument_point.set("pntRef", str(kwargs["pid"])) if "instru_x" in kwargs: instrument_point.text = f"{kwargs['instru_x']} {kwargs['instru_y']} {kwargs['instru_z']}" # instrument_setup.append(instrument_point) self.survey.insert(pos, instrument_setup) # Creation of ObservationGroup tag, subelement of Survey observation_group = xml.Element("ObservationGroup", id=f"o{self.id}", setupID=f"setup{self.id}") # Creation of Backsight tag, subelement of ObservationGroup if "circle" in kwargs or "back_x" in kwargs: backsight = xml.SubElement(observation_group, "Backsight", circle="0.") # Fill of Backsight attributes if "circle" in kwargs: backsight.set("circle", str(kwargs["circle"])) if "back_x" in kwargs: # Creation of BacksightPoint tag, subelement of Backsight backsight_point = xml.SubElement(backsight, "BacksightPoint") # Fill of BacksightPoint attributes if "back_name" in kwargs: backsight_point.set("name", str(kwargs["back_name"])) if "back_x" in kwargs: backsight_point.text = f"{kwargs['back_x']} {kwargs['back_y']} {kwargs['back_z']}" self.survey.insert(pos * 2, observation_group) # ID can be raise self.id += 1 def raw_observation(self, **kwargs): """ Populate the RawObservation tag. No attribut is mandatory so kwargs can be empty. Arguments in kwargs for RawObservation: - th -> targetHeight attrib of RawObservation - angle -> horizAngle attrib of RawObservation - z_angle -> zenithAngle attrib of RawObservation - dist -> Distance attrib of RawObservation - dist_type -> Type of distance attrib of RawObservation - point_name -> desc attrib of TargetPoint part of RawObservation - pid -> pntRef attrib of TargetPoint part of RawObservation - x -> x coordinate element of TargetPoint part of RawObservation - y -> y coordinate element of TargetPoint part of RawObservation - z -> z coordinate element of TargetPoint part of RawObservation - ih -> instrumentHeight attrib of Property part of Feature - ppm -> edmAccuracyppm attrib of Property part of Feature - prism_constant -> edmAccuracyConstant attrib of Property part of Feature - attrib -> attribX attrib of Property part of Feature """ # kwargs = {key: str(value) if value is not None else value for key,value in kwargs.items()} # When creating a RawObservation tag, it should verified that an ObservationGroup tag exists if self.survey.find("./ObservationGroup[@id='o0']") is None: self.setup() observation_group = self.survey.find(f"./ObservationGroup[@id='o{self.id - 1}']") # Creation of RawObservation tag, subelement of ObservationGroup raw_observation = xml.SubElement(observation_group, "RawObservation") # Fill of RawObservation attributes if "th" in kwargs: raw_observation.set("targetHeight", str(kwargs["th"])) if "angle" in kwargs and kwargs["angle"] is not None: raw_observation.set("horizAngle", str(kwargs["angle"])) if "azimuth" in kwargs and kwargs["azimuth"] is not None: raw_observation.set("azimuth", str(kwargs["azimuth"])) if "z_angle" in kwargs and kwargs["z_angle"] is not None: if kwargs["z_angle_type"] == "dh": raw_observation.set("vertDistance", str(kwargs["z_angle"])) if kwargs["z_angle_type"] == "z": raw_observation.set("zenithAngle", str(kwargs["z_angle"])) if kwargs["z_angle_type"] == "v": raw_observation.set("zenithAngle", str(vertical_to_zenithal(kwargs["z_angle"],kwargs["angle_unit"]))) if "dist" in kwargs and kwargs["dist"] is not None: if kwargs["dist_type"] == 's': raw_observation.set("slopeDistance", str(kwargs["dist"])) if kwargs["dist_type"] == 'h': raw_observation.set("horizDistance", str(kwargs["dist"])) # Creation of TargetPoint tag, subelement of RawObservation target_point = xml.SubElement(raw_observation, "TargetPoint") # Fill of TargetPoint attributes if "point_name" in kwargs: target_point.set("desc", str(kwargs["point_name"])) if "pid" in kwargs: target_point.set("pntRef", str(kwargs["pid"])) if "x" in kwargs: target_point.text = f"{kwargs['x']} {kwargs['y']}" if "z" in kwargs: target_point.text += f" {kwargs['z']}" # targetHeight is not mandatory in RawObservation so this is a feature if "ih" in kwargs and kwargs["ih"] is not None: if raw_observation.find("./Feature") is None: feature = xml.SubElement(raw_observation, "Feature") # feature_property xml.SubElement(feature, "Property", label="instrumentHeight", value=str(kwargs["ih"])) # ppm or prism_constant are not mandatory in RawObservation so this is a feature if "ppm" in kwargs and kwargs["ppm"] is not None: if raw_observation.find("./Feature") is None: feature = xml.SubElement(raw_observation, "Feature") # feature_property xml.SubElement(feature, "Property", label="edmAccuracyppm", value=str(kwargs["ppm"])) xml.SubElement(feature, "Property", label="edmAccuracyConstant", value=str(kwargs["prism_constant"])) # attrib is not mandatory in RawObservation so this is a feature if "attrib" in kwargs: if raw_observation.find("./Feature") is None: feature = xml.SubElement(raw_observation, "Feature") # feature_property for i in range(len(kwargs["attrib"])): xml.SubElement(feature, "Property", label=f"attrib{i + 1}", value=str(kwargs["attrib"][i])) def to_string(self): """ :return: """ return xml.tostring(self.survey) class LandXML: """ Create the LandXML file. """ def __init__(self): xml.register_namespace('', DEFAULT_NS) tree = xml.ElementTree(xml.fromstring(TEMPLATE)) self.root = tree.getroot() def append(self, xml_data): self.root.append(xml_data) def to_string(self): cdate = time.strftime("%Y-%m-%d") ctime = time.strftime("%H:%M:%S") self.root.set("date", cdate) self.root.set("time", ctime) application = self.root.find(f"{{{DEFAULT_NS}}}Application") application.set("timeStamp", f"{cdate}T{ctime}") pretty_xml = _indent(self.root) return xml.tostring(pretty_xml).decode() class FormatParser(Parser): """ A FormatParser for LandXML data format. As the model data is in LandXML format, only Survey tags is kept. It doesn't inherit from the base Parser class because the internal procedure is quite different, but it implements the same API so it can work nicely with other parts of the library. """ def __init__(self, data): data = re.sub('(\\n|\\t)', '', data) self.line = xml.fromstring(data) @property def points(self): '''Compute raw data to get points coordinates. This parser is based on the information in :ref:`if_landxml` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: KeyError: An error occured during computation, the data does not exist. Notes: ''' points = [] stations = {} pointsFeature = self.raw_line for point in pointsFeature: if point.desc == 'PT': points.append(point) if point.desc == 'ST': stations[point.point_name] = point if point.desc == 'PO': pp = point.properties coords = stations[pp['station_name']].geometry bp = BasePoint(x=coords.x, y=coords.y, z=coords.z, ih=pp['ih'], b_zero_st=0.0) p = PolarPoint(angle_unit=pp['angle_unit'], z_angle_type=pp['z_angle_type'], dist_type=pp['dist_type'], dist=pp['dist'], angle=pp['angle'], z_angle=pp['z_angle'], th=pp['th'], base_point=bp, pid=point.id, text='', coordorder='ENZ') f = Feature(p.to_point(), desc='PT', id=point.id, point_name=point.point_name) points.append(f) return points @property def raw_line(self): '''Extract all LandXML data. This parser is based on the information in :ref:`if_landxml` Returns: A list of GeoJSON-like Feature object representing raw data i.e. polar coordinates and other informations. Raises: Notes: ''' ns = {"default": DEFAULT_NS} stations = {} points = [] points_coord = {} pid = 0 station_id = 1 # These values are mandatory by the LandXML schema units = self.line.find("default:Units", ns) dist_unit = units.find("default:Metric", ns).attrib["linearUnit"] angle_unit = units.find("default:Metric", ns).attrib["angularUnit"] survey = self.line.find("default:Survey", ns) cgpoints = survey.find("default:CgPoints", ns) point_id = 100 for cgpoint in cgpoints.findall("default:CgPoint", ns): p = Point(*cgpoint.text.split(" ")) # unpack values try: point_name = cgpoint.attrib["name"] except KeyError: point_name = f"point_{point_id}" point_id += 1 points_coord[point_name] = p feature = cgpoints.find(f"""default:Feature[@name='{cgpoint.attrib["featureRef"]}']""", ns) if feature is not None: attrib = [prop.attrib["value"] for prop in feature.findall("default:Property", ns)] f = Feature(p, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 for station in survey.findall("default:InstrumentSetup", ns): station_id = station.attrib["id"] point_name = station.attrib["stationName"] p = points_coord[point_name] ih = station.attrib["instrumentHeight"] stations[station_id] = [point_name, ih] try : hz0 = station.attrib["orientationAzimuth"] except KeyError: try : hz0 = station.attrib["circleAzimuth"] except KeyError: hz0 = None feature = station.find("default:Feature", ns) if feature is not None: attrib = [prop.attrib["value"] for prop in feature.findall("default:Property", ns)] f = Feature(p, desc='ST', id=pid, point_name=point_name, angle_unit=angle_unit, dist_unit=dist_unit, ih=ih, hz0=hz0, attrib=attrib) points.append(f) pid += 1 point_id = 100 for observation in survey.findall("default:ObservationGroup", ns): try: station_id = observation.attrib["setupID"] except: station_id = '' for rawobservation in observation.findall("default:RawObservation", ns): if not station_id: try: station_id = rawobservation.attrib["setupID"] except: pass target_point = rawobservation.find("default:TargetPoint", ns) if target_point is not None: try: point_name = target_point.attrib["desc"] except KeyError: try: point_name = target_point.attrib["name"] except KeyError: point_name = f"point_{point_id}" point_id += 1 p = Point(*target_point.text.split(" ")) # unpack values try: azimuth = rawobservation.attrib["azimuth"] except KeyError: azimuth = None try: angle = rawobservation.attrib["horizAngle"] except KeyError: angle = None try: z_angle = rawobservation.attrib["zenithAngle"] z_angle_type = 'z' except KeyError: z_angle = None # dZ # z_angle = rawobservation.attrib["vertDistance"] # z_angle_type = 'dh' try: dist = rawobservation.attrib["slopeDistance"] dist_type = 's' except KeyError: try: dist = rawobservation.attrib["horizDistance"] dist_type = 'h' except KeyError: dist = None try: th = rawobservation.attrib["targetHeight"] except KeyError: th = None # ih is integrated in point values to simplify possible computation ih = stations[station_id][1] station_name = stations[station_id][0] feature = rawobservation.find("default:Feature", ns) if feature is not None: attrib = [prop.attrib["value"] for prop in feature.findall("default:Property", ns)] f = Feature(p, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type=z_angle_type, dist_unit=dist_unit, dist_type=dist_type, azimuth=azimuth, angle=angle, z_angle=z_angle, dist=dist, ih=ih, th=th, station_name=station_name, attrib=attrib) points.append(f) pid += 1 return points totalopenstation-0.5.3/totalopenstation/formats/leica_gsi.py000066400000000000000000000507261477035261600245260ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/leica_gsi.py # Copyright 2012 Stefano Costa # Copyright 2015-2016 Damien Gaignon # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging from . import Feature, Parser, Point, UNKNOWN_STATION, UNKNOWN_POINT from .polar import BasePoint, PolarPoint # Distance units depend of the last digit # 0, 6 and 8 are in mm, 1/10mm and 1/100mm # 1 and 7 are in ft and 1/10000ft converted in m UNITS = {"angle": {'21', '22', '25'}, "distance": {'31', '32', '33', '81', '84', '87', '88'}, "2": "gon", "3": "deg", "4": "dms", "5": "mil", "0": "meter", "1": "feet", "6": "dmeter", "7": "dfeet", "8": "mmeter", "gon": 100000, "deg": 100000, "dms": 100000, "mil": 10000, "meter": 1000, "feet": 1000, "dmeter": 10000, "dfeet": 10000, "mmeter": 100000} logger = logging.getLogger(__name__) class FormatParser(Parser): '''The FormatParser for Leica GSI data format. Args: data (str): A string representing the file to be parsed. Attributes: line (list): A list of each lines of the file being parsed. ''' def __init__(self, data): self.rows = data.splitlines() def _get_comments(self): """ Get all comments of the parsed line Returns: A list of comments or an empty list """ comments = [] for i in range(1, 10): try: comments.append(self.tdict[f'4{i}']['data'].lstrip('0')) except KeyError: break return comments def _get_attrib(self): """ Get all attributes or remarks of the parsed line Returns: A list of attributes and remarks or an empty list """ attrib = [] for i in range(1, 10): try: attrib.append(self.tdict[ f'7{i}']['data'].lstrip('0')) except KeyError: break return attrib def _get_coordinates(self, first_coor, unit): """ Get all coordinates of the parsed line Args: first_coor (str): The Word Index of the first coordinate. Could be 81 or 84 unit (int): The divider corresponding to the coordinate unit. Returns: All three coordinates in the forme of X, Y, Z If these coordinates do not exist, return None """ second_coor = str(int(first_coor) + 1) third_coor = str(int(first_coor) + 2) try: x_sign, x_data = self.tdict[first_coor]['sign'], self.tdict[first_coor]['data'] y_sign, y_data = self.tdict[second_coor]['sign'], self.tdict[second_coor]['data'] z_sign, z_data = self.tdict[third_coor]['sign'], self.tdict[third_coor]['data'] except KeyError: x = None y = None z = None else: x = float(x_sign + x_data) / unit y = float(y_sign + y_data) / unit z = float(z_sign + z_data) / unit return x, y, z def _get_angle(self, angle, unit): """ Get an angle of the parsed line Returns: A floating number representing the angle If this angle does not exist, return None """ try: angle_sign, angle_data = self.tdict[angle]['sign'], self.tdict[angle]['data'] except KeyError: angle = None else: angle = float(angle_sign + angle_data) / unit return angle def _get_edm_accuracy(self, ldata): """ Get the ppm and the prism constant of the parsed line Returns: Two floating numbers representing ppm and prism constant If these values do not exist, return None """ try: ppm_sign, ppm_data = self.tdict['51']['sign'], self.tdict['51']['data'][:ldata-4] pc_sign, pc_data = self.tdict['51']['data'][ldata-4], self.tdict['51']['data'][ldata-3:] except KeyError: try: ppm_sign, ppm_data = self.tdict['59']['sign'], self.tdict['59']['data'] pc_sign, pc_data = self.tdict['58']['sign'], self.tdict['58']['data'] except KeyError: ppm = None prism_constant = None else: ppm = float(ppm_sign + ppm_data) prism_constant = float(pc_sign + pc_data) else: ppm = float(ppm_sign + ppm_data) prism_constant = float(pc_sign + pc_data) return ppm, prism_constant def _get_value(self, value, unit): """ Get a value of the parsed line Returns: A string value or None """ try: value_sign, value_data = self.tdict[value]['sign'], self.tdict[value]['data'] except KeyError: value = None else: value = float(value_sign + value_data) / unit return value @property def points(self): '''Extract all GSI data. This parser is based on the information in :ref:`if_leica_gsi` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: KeyError: An error occured during line read, this line could not be computed as the WI does not exist. KeyError: An error occured during computation, the data does not exist. Notes: Information needed are: - station : 11, 84, 85, 86, 88 - direct point : 11, 81, 82, 83 - computed point : 11, 21, 22, 31 or 32, 87 [, 88] [, 81, 82, 83] Angles are considered as zenithal ''' points = [] bp = None for row in self.rows: tokens = row.split() self.tdict = {} for t in tokens: t = t.lstrip('*') data = { 'wordindex': t[0:2], 'info': t[2:6], 'sign': t[6], 'data': t[7:], } self.tdict[data['wordindex']] = data try: pid = int(self.tdict['11']['info']) text = self.tdict['11']['data'].lstrip('0') except KeyError: pass else: # Get angle and distance units try: angle_code = list(UNITS['angle'] & set(self.tdict.keys()))[0] angle_unit = UNITS[self.tdict[angle_code]['info'][3]] except IndexError: pass try: dist_code = list(UNITS['distance'] & set(self.tdict.keys()))[0] dist_unit = UNITS[self.tdict[dist_code]['info'][3]] except IndexError: pass # Beginning of the parsing try: # Look for point coordinates x, y, z = self.tdict['81'], self.tdict['82'], self.tdict['83'] except KeyError: try: angle, z_angle = self.tdict['21'], self.tdict['22'] z_angle_type = 'z' # 31 or/and 32 try: dist = self.tdict['31'] except KeyError: try: dist = self.tdict['32'] except KeyError: logger.info('There is no distance value') dist = None else: dist_type = 'h' else: dist_type = 's' th = self.tdict['87'] except KeyError: try: # Look for a station x, y, z = self.tdict['84'], self.tdict['85'], self.tdict['86'] ih = self.tdict['88'] except KeyError: pass else: # Compute station data x, y, z = self._get_coordinates("84", UNITS[dist_unit]) ih = self._get_value("88", UNITS[dist_unit]) bp = BasePoint(x=x, y=y, z=z, ih=ih, b_zero_st=0.0) p = Point(x, y, z) f = Feature(p, desc='ST', id=pid, point_name=text, dist_unit=dist_unit) points.append(f) else: angle = self._get_angle("21", UNITS[angle_unit]) z_angle = self._get_angle("22", UNITS[angle_unit]) if dist_type == 's': dist = self._get_value("31", UNITS[dist_unit]) else: dist = self._get_value("32", UNITS[dist_unit]) th = self._get_value("87", UNITS[dist_unit]) # Polar data may have point coordinates (not used) x, y, z = self._get_coordinates("81", UNITS[dist_unit]) # Polar data may have instrument height ih = self._get_value("88", UNITS[dist_unit]) if ih is None: ih = 0.0 if bp is None: bp = BasePoint(x=0.0, y=0.0, z=0.0, ih=ih, b_zero_st=0.0) p = PolarPoint(angle_unit=angle_unit, z_angle_type=z_angle_type, dist_type=dist_type, dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=text, coordorder='ENZ') f = Feature(p.to_point(), desc='PT', id=pid, point_name=text) points.append(f) else: x, y, z = self._get_coordinates("81", UNITS[dist_unit]) p = Point(x, y, z) f = Feature(p, desc='PT', id=pid, point_name=text) points.append(f) logger.debug(points) return points @property def raw_line(self): '''Extract all GSI data. This parser is based on the information in :ref:`if_leica_gsi` Returns: A list of GeoJSON-like Feature object representing raw data i.e. polar coordinates and other informations. Raises: KeyError: An error occured during line read, this line could not be computed as the WI does not exist. KeyError: An error occured during computation, the data does not exist. Notes: Information needed are: - station : 11 [, 25], 84, 85, 86 [, 87], 88 - direct point : 11, 81, 82, 83 - computed point : 11, 21, 22, 31 or 32 [, 51], 87 [, 88] [, 81, 82, 83] Angles are considered as zenithal ''' points = [] # GSI files handles 8 or 16 bits data block. This will check the size ldata = len(self.rows[0].split()[0].lstrip('*')[7:]) station_id = 1 station_name = None # type: str for row in self.rows: tokens = row.split() self.tdict = {} for t in tokens: t = t.lstrip('*') data = { 'wordindex': t[0:2], 'info': t[2:6], 'sign': t[6], 'data': t[7:], } self.tdict[data['wordindex']] = data try: pid = int(self.tdict['11']['info']) point_name = self.tdict['11']['data'].lstrip('0') except KeyError: try: comments = self.tdict['41'] except KeyError: logger.info(f"The line {pid} will not be computed as the code '{row[0:2]}' is not known") else: # Compute comments comments = self._get_comments() else: # Get angle and distance units try: angle_code = list(UNITS['angle'] & set(self.tdict.keys()))[0] angle_unit = UNITS[self.tdict[angle_code]['info'][3]] except IndexError: pass try: dist_code = list(UNITS['distance'] & set(self.tdict.keys()))[0] dist_unit = UNITS[self.tdict[dist_code]['info'][3]] except IndexError: pass # Beginning of the parsing try: # Look for a station x, y, z = self.tdict['84'], self.tdict['85'], self.tdict['86'] ih = self.tdict['88'] except KeyError: # Otherwise look for polar data try: angle, z_angle = self.tdict['21'], self.tdict['22'] # 31 or/and 32 try: dist = self.tdict['31'] except KeyError: try: dist = self.tdict['32'] except KeyError: logger.info('There is no distance value') dist = None else: dist_type = 'h' else: dist_type = 's' th = self.tdict['87'] except KeyError: # Otherwise look for point coordinates only try: x, y, z = self.tdict['81'], self.tdict['82'], self.tdict['83'] except KeyError: # Otherwise look for Remark or Attrib try: attrib = self.tdict['71'] except KeyError: # No more possibilities logger.info(f"These data can not be compute : {self.tdict}") else: # Compute remark or Attrib attrib = self._get_attrib() else: # Compute point coordinates x, y, z = self._get_coordinates("81", UNITS[dist_unit]) # Point coordinates may have remarks or attributes attrib = self._get_attrib() if x: p = Point(x, y, z) else: logger.info('There is no known point') p = UNKNOWN_POINT f = Feature(p, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) else: # Compute polar data angle = self._get_angle("21", UNITS[angle_unit]) z_angle = self._get_angle("22", UNITS[angle_unit]) z_angle_type = 'z' if dist_type == 's': dist = self._get_value("31", UNITS[dist_unit]) else: dist = self._get_value("32", UNITS[dist_unit]) th = self._get_value("87", UNITS[dist_unit]) # Polar data may have point coordinates x, y, z = self._get_coordinates("81",UNITS[dist_unit]) # Polar data may have instrument height ih = self._get_value("88", UNITS[dist_unit]) # Polar data may have constant data ppm, prism_constant = self._get_edm_accuracy(ldata) # Polar data may have remarks or attributes attrib = self._get_attrib() if x: p = Point(x, y, z) else: logger.info('There is no known point') p = UNKNOWN_POINT try: station_name except UnboundLocalError: logger.info('There is no known station') station_name = f'station_{station_id}' station_id += 1 f = Feature(p, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type=z_angle_type, dist_unit=dist_unit, dist_type=dist_type, angle=angle, z_angle=z_angle, dist=dist, th=th, ih=ih, ppm=ppm, prism_constant=prism_constant, st_name=station_name, attrib=attrib) points.append(f) else: # Compute station data x, y, z = self._get_coordinates("84", UNITS[dist_unit]) ih = self._get_value("88", UNITS[dist_unit]) # Station data may have an azimuth angle hz0 = self._get_angle("25", UNITS[angle_unit]) # Station data may have remarks or attributes attrib = self._get_attrib() if x: p = Point(x, y, z) station_name = point_name else: logger.info('There is no known station') p = UNKNOWN_STATION station_name = f"station_{station_id}" station_id += 1 f = Feature(p, desc='ST', id=pid, point_name=point_name, angle_unit=angle_unit, dist_unit=dist_unit, ih=ih, hz0=hz0, attrib=attrib) points.append(f) logger.debug(points) return points totalopenstation-0.5.3/totalopenstation/formats/leica_tcr_1205.py000066400000000000000000000033421477035261600251730ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/leica_tcr_1205.py # Copyright 2008-2009 Stefano Costa # Copyright 2008 Luca Bianconi # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Feature, Parser, Point class FormatParser(Parser): def is_point(self, line): tokens = line.split() try: float(tokens[1]) float(tokens[2]) float(tokens[3]) except (ValueError, IndexError): is_point = False else: #di questo controllo che segue FORSE non gliene frega un beliscimu if tokens[4] == "MEAS": is_point = True else: is_point = False return is_point def get_point(self, line): tokens = line.split() if len(tokens) > 5: text = str(tokens[5]) else: text = "" p = Point(tokens[1], tokens[2], tokens[3]) f = Feature(p, desc=text, id=tokens[0].strip()) return f totalopenstation-0.5.3/totalopenstation/formats/leica_tcr_705.py000066400000000000000000000034461477035261600251240ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/leica_tcr_705.py # Copyright 2009-2010 Stefano Costa # Copyright 2009-2010 Luca Bianconi # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Feature, Parser, Point class FormatParser(Parser): def is_point(self, line): tokens = line.split(",") is_point = False try: float(tokens[1]) float(tokens[2]) float(tokens[3]) except (ValueError, IndexError): is_point = False else: is_point = True x, y, z = tokens[1:4] # not so clear why there are such points recorded if x == '1.00' and y == '1.00' and z == '1.00': is_point = False return is_point def get_point(self, line): tokens = line.split(",") if len(tokens) > 4: text = str(tokens[4].strip(' -')) else: text = "" p = Point(tokens[1], tokens[2], tokens[3]) f = Feature(p, desc=text, id=tokens[0].strip()) return f totalopenstation-0.5.3/totalopenstation/formats/nikon_raw_v200.py000066400000000000000000000454141477035261600253430ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/nikon_raw_v200.py # Copyright 2010 Stefano Costa # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging from . import Feature, Point, UNITS_CIRCLE, UNKNOWN_STATION, UNKNOWN_POINT, check_coordorder from .polar import BasePoint, PolarPoint # ussfeet = US Survey Feet # Angular Mil is not present as the code is not known UNITS = {"angle": {"DDDMMSS": "dms", "Gons": "gon", "Degrees": "deg"}, "distance": {"Feet": "feet", "Metres": "meter", "Feet US": "ussfeet"} } logger = logging.getLogger(__name__) class FormatParser: '''The FormatParser for Nikon Raw v2.00 data. Args: data (str): A string representing the file to be parsed. Attributes: rows (list): A list of each lines of the file being parsed. ''' def __init__(self, data): self.rows = data.splitlines() @property def points(self): '''Extract all Nikon RAW data format V2.00. This parser is based on the information in :ref:`if_nikon_raw` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: Notes: Sometimes needed records are commented so it is needed to parse also comments Angles are considered as vertical Distances are slope distances ''' points_coord = {} base_points = {} points = [] pid = 0 st = 0 cocircle = coih = False for row in self.rows: fs = row.split(',') # Get angle and distance units if fs[0] == 'CO': if fs[1].startswith('Coord Order:'): coordorder = check_coordorder(fs[1].split(':')[-1].strip()) if fs[1].startswith('Angle Units:'): angle_unit = UNITS["angle"][fs[1].split(':')[1].strip()] if fs[1].startswith('Dist Units:'): dist_unit = UNITS["distance"][fs[1].split(':')[1].strip()] # For fast setting, Trimble M3 can use comments for station if fs[1].startswith('TI HOLD') or fs[1].startswith('TI Hz'): circle = fs[1].split('Hz')[1].strip().split()[0] cocircle = True if fs[1].startswith('TI INPUT'): try: ih = fs[1].split('ih')[1].strip().split()[0] except IndexError: ih = ih coih = True if cocircle and coih: station_name = f"st{st}" try: station_point = points_coord[station_name] except KeyError: logger.info('There is no known station') station_point = UNKNOWN_STATION points_coord[station_name] = station_point f = Feature(station_point, desc='ST', id=pid, point_name=station_name, dist_unit=dist_unit, ih=ih) points.append(f) b_zero_st = 0.0 bp = BasePoint(x=station_point.x, y=station_point.y, z=station_point.z, ih=ih, b_zero_st=b_zero_st) base_points[station_name] = bp st += 1 pid += 1 cocircle = coih = False # Look for point coordinates if fs[0] in ('UP','MP', 'CC', 'RE', 'MC'): point_name = fs[1] easting = fs[3] northing = fs[4] if coordorder == "NEZ": easting, northing = northing, easting elevation = float(fs[5]) point = Point(easting, northing, elevation) attrib = [fs[6]] f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[point_name] = point # Look for station coordinates if fs[0] == 'ST': station_name = fs[1] ih = float(fs[5]) if ih == '': ih = 0 try: station_point = points_coord[station_name] except KeyError: logger.info('There is no known station') station_point = UNKNOWN_STATION points_coord[station_name] = station_point # Look for back sight values in station values # Treat only one backsight or the last one if fs[3] != '': b_zero_st = (float(fs[6]) - float(fs[7])) % UNITS_CIRCLE[angle_unit] else: b_zero_st = 0.0 f = Feature(station_point, desc='ST', id=pid, point_name=station_name, dist_unit=dist_unit, ih=ih, b_zero_st=b_zero_st) points.append(f) pid += 1 bp = BasePoint(x=station_point.x, y=station_point.y, z=station_point.z, ih=ih, b_zero_st=b_zero_st) base_points[station_name] = bp # Look for Sideshot, Face 1 and Face 2 if fs[0] in ('SS', 'F1', 'F2'): for i in (2, 3, 4, 5): if fs[i] == '': fs[i] = 0 point_name = fs[1] th = float(fs[2]) dist = float(fs[3]) angle = float(fs[4]) z_angle = float(fs[5]) try: attrib = [fs[7]] except IndexError: attrib = [] p = PolarPoint(angle_unit=angle_unit, z_angle_type='v', dist_type='s', dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=point_name, coordorder=coordorder) point = p.to_point() f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[point_name] = point # Look for Stakeout if fs[0] == 'SO': point_name = fs[1] th = float(fs[3]) dist = float(fs[4]) angle = float(fs[5]) z_angle = float(fs[6]) p = PolarPoint(angle_unit=angle_unit, z_angle_type='v', dist_type='s', dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=point_name, coordorder=coordorder) point = p.to_point() f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit) points.append(f) pid += 1 points_coord[station_name] = point # Look for Control point if fs[0] == 'CP': point_name = fs[1] th = float(fs[3]) dist = float(fs[4]) angle = float(fs[5]) z_angle = float(fs[6]) attrib = [fs[8]] p = PolarPoint(angle_unit=angle_unit, z_angle_type='v', dist_type='s', dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=point_name, coordorder=coordorder) point = p.to_point() f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[station_name] = point logger.debug(points) return points @property def raw_line(self): '''Extract all Nikon Raw v2.00 data. This parser is based on the information in :ref:`if_nikon_raw` Returns: A list of GeoJSON-like Feature object representing points coordinates. Raises: Notes: Information needed are: - station : Station record - backsight : Control point record - direct point : Uploaded point or Manually input point or Calculated coordinate or Resection point - computed point : Sideshot, Stakeout, Face 1 or 2 Sometimes needed records are commented so it is needed to parse also comments like - coordinates order - units Angles are considered as vertical Distances are slope distances ''' points_coord = {} points = [] pid = 0 st = 0 cocircle = coih = False for row in self.rows: fs = row.split(',') # Get angle and distance units if fs[0] == 'CO': if fs[1].startswith('Coord Order:'): coordorder = check_coordorder(fs[1].split(':')[-1].strip()) if fs[1].startswith('Angle Units:'): angle_unit = UNITS["angle"][fs[1].split(':')[1].strip()] if fs[1].startswith('Dist Units:'): dist_unit = UNITS["distance"][fs[1].split(':')[1].strip()] # For fast setting, Trimble M3 can use comments for station if fs[1].startswith('TI HOLD') or fs[1].startswith('TI Hz'): circle = fs[1].split('Hz')[1].strip().split()[0] cocircle = True if fs[1].startswith('TI INPUT'): try: ih = fs[1].split('ih')[1].strip().split()[0] except IndexError: ih = ih coih = True if cocircle and coih: station_name = f"st{st}" try: station_point = points_coord[station_name] except KeyError: logger.info('There is no known station') station_point = UNKNOWN_STATION points_coord[station_name] = station_point f = Feature(station_point, desc='ST', id=pid, point_name=station_name, dist_unit=dist_unit, ih=ih) points.append(f) st += 1 pid += 1 cocircle = coih = False # Look for point coordinates if fs[0] in ('UP','MP', 'CC', 'RE', 'MC'): point_name = fs[1] easting = fs[3] northing = fs[4] if coordorder == "NEZ": easting, northing = northing, easting elevation = float(fs[5]) point = Point(easting, northing, elevation) attrib = [fs[6]] f = Feature(point, desc='PT', id=pid, point_name=point_name, dist_unit=dist_unit, attrib=attrib) points.append(f) pid += 1 points_coord[point_name] = point # Look for station coordinates if fs[0] == 'ST': station_name = fs[1] ih = float(fs[5]) if ih == '': ih = 0 try: station_point = points_coord[station_name] except KeyError: logger.info('There is no known station') station_point = UNKNOWN_STATION points_coord[station_name] = station_point f = Feature(station_point, desc='ST', id=pid, point_name=station_name, dist_unit=dist_unit, ih=ih) points.append(f) pid += 1 # Look for back sight values in station values # Treat only one backsight or the last one if fs[3] != '': b_zero_st = (float(fs[6]) - float(fs[7])) % UNITS_CIRCLE[angle_unit] else: b_zero_st = 0.0 if fs[3] != '': point_name = fs[3] azimuth = fs[6] circle = fs[7] try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT f = Feature(point, desc='BS', id=pid, point_name=point_name, angle_unit=angle_unit, circle=circle, azimuth=azimuth) points.append(f) pid += 1 # Look for Sideshot, Face 1 and Face 2 if fs[0] in ('SS', 'F1', 'F2'): for i in (2, 3, 4, 5): if fs[i] == '': fs[i] = 0 point_name = fs[1] th = float(fs[2]) dist = float(fs[3]) angle = float(fs[4]) z_angle = float(fs[5]) try: attrib = [fs[7]] except IndexError: attrib = [] azimuth = None try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT f = Feature(point, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type='v', dist_unit=dist_unit, dist_type='s', azimuth=azimuth, angle=angle, z_angle=z_angle, dist=dist, th=th, attrib=attrib) points.append(f) pid += 1 # Look for Stakeout if fs[0] == 'SO': point_name = fs[1] th = float(fs[3]) dist = float(fs[4]) angle = float(fs[5]) z_angle = float(fs[6]) azimuth = None try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT f = Feature(point, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type='v', dist_unit=dist_unit, dist_type='s', azimuth=azimuth, angle=angle, z_angle=z_angle, dist=dist, th=th) points.append(f) pid += 1 # Look for Control point if fs[0] == 'CP': point_name = fs[1] th = float(fs[3]) dist = float(fs[4]) angle = float(fs[5]) z_angle = float(fs[6]) attrib = fs[8] azimuth = None try: point = points_coord[point_name] except KeyError: logger.info('There is no known point') point = UNKNOWN_POINT f = Feature(point, desc='PO', id=pid, point_name=point_name, angle_unit=angle_unit, z_angle_type='v', dist_unit=dist_unit, dist_type='s', azimuth=azimuth, angle=angle, z_angle=z_angle, dist=dist, th=th, attrib=attrib) points.append(f) pid += 1 logger.debug(points) return points totalopenstation-0.5.3/totalopenstation/formats/polar.py000066400000000000000000000127301477035261600237150ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: polar.py # Copyright 2010, 2014 Stefano Costa # Copyright 2015-2016 Damien Gaignon # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from math import cos, sin, tan from totalopenstation.formats.conversion import to_rad from . import Feature, Point, UNITS_CIRCLE def polar_to_cartesian(angle_unit, z_angle_type, dist_type, base_x, base_y, base_z, dist, azimuth, z_angle, ih, th): '''Convert polar coordinates to cartesian. Needs base point coordinates, measurement angles and distance. Angles must be given in radians. Some important caveats of the current implementation: - the horizontal ``angle`` is hardcoded with zero azimuth at North ''' if z_angle_type == 'dh': dZ = z_angle if z_angle_type == 'v': if dist_type == 'h': dZ = dist * tan(to_rad(z_angle, angle_unit)) else: dZ = dist * sin(to_rad(z_angle, angle_unit)) if z_angle_type == 'z': if dist_type == 'h': dZ = dist / tan(to_rad(z_angle, angle_unit)) else: dZ = dist * cos(to_rad(z_angle, angle_unit)) if dist_type == 's': if z_angle_type == 'dh': dist = (dist ** 2 - z_angle ** 2) ** (0.5) if z_angle_type == 'v': dist = dist * cos(to_rad(z_angle, angle_unit)) if z_angle_type == 'z': dist = dist * sin(to_rad(z_angle, angle_unit)) dX = dist * sin(to_rad(azimuth, angle_unit)) dY = dist * cos(to_rad(azimuth, angle_unit)) target_x = base_x + dX target_y = base_y + dY target_z = base_z + ih + dZ - th return dict(x=target_x, y=target_y, z=target_z) class PolarPoint: '''A point geometry defined by polar coordinates.''' def __init__(self, angle_unit, # angle unit z_angle_type, # type of angle z, v or dh dist_type, # type of distance h or s dist, # inclined distance angle, # horizontal angle z_angle, # vertical angle th, # target height base_point, # BasePoint object pid, # point ID text, # point description coordorder): # cartesian coordinates order (NEZ, ENZ) self.angle_unit = angle_unit self.z_angle_type = z_angle_type self.dist_type = dist_type self.dist = float(dist) self.th = float(th) self.angle = float(angle) self.z_angle = float(z_angle) self.pid = pid self.text = text self.coordorder = coordorder # base point data self.base_x = base_point.x self.base_y = base_point.y # For NEZ coordinate system, an inversion should be done before calculation if self.coordorder == "NEZ": self.base_x, self.base_y = self.base_y, self.base_x self.base_z = base_point.z self.ih = base_point.ih self.b_zero_st = base_point.b_zero_st def to_point(self): '''Convert from PolarPoint to (cartesian) Point object''' azimuth = (self.b_zero_st + self.angle) % UNITS_CIRCLE[self.angle_unit] cart_coords = polar_to_cartesian(self.angle_unit, self.z_angle_type, self.dist_type, self.base_x, self.base_y, self.base_z, self.dist, azimuth, self.z_angle, self.ih, self.th) if self.coordorder == "NEZ": cart_coords['x'], cart_coords['y'] = cart_coords['y'], cart_coords['x'] cart_point = Point(cart_coords['x'], cart_coords['y'], cart_coords['z']) return cart_point def as_feature(self): '''Wrap geometry and other properties like id, description in a Feature.''' feature = Feature(self.to_point(), properties={'angle_unit': self.angle_unit}, id=self.pid, desc=self.desc) return feature class BasePoint: '''A base point to derive cartesian coordinates from polar. TODO: find out whether ih is more commonly coupled to a base point or to each single point.''' def __init__(self, x, y, z, ih, b_zero_st): self.x = float(x) self.y = float(y) self.z = float(z) self.ih = float(ih) self.b_zero_st = float(b_zero_st) totalopenstation-0.5.3/totalopenstation/formats/sokkia_sdr33.py000066400000000000000000000026711477035261600251020ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/sokkia_sdr33.py # Copyright 2014 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Feature, Parser, Point class FormatParser(Parser): def is_point(self, line): if line[2:4] == ('TP'): return True else: return False def get_point(self, line): id = int(line[12:20]) y = float(line[20:32]) # Northing x = float(line[32:48]) # Easting z = float(line[48:63]) # Elevation if line[0:2] == '02': # Base point desc = line[78:86].strip() if line[0:2] == '08': # Measurement desc = line[63:70].strip() point = Point(x, y, z) feature = Feature(point, desc=desc, id=id) return feature totalopenstation-0.5.3/totalopenstation/formats/topcon_gts.py000066400000000000000000000056211477035261600247600ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/topcon_gts.py # Copyright 2010 Stefano Costa # Copyright 2010 Cristiano Moscaritolo # Copyright 2010 Olga Pastore # Copyright 2010 Enza Battiante # Copyright 2010 Raffaele Fanelli # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging from .polar import BasePoint, PolarPoint from totalopenstation.formats.conversion import deg_to_gon from . import Feature logger = logging.getLogger(__name__) class FormatParser: '''A FormatParser for Topcon GTS polar format. It doesn't inherit from the base Parser class because the internal procedure is quite different, but it implements the same API so it can work nicely with other parts of the library.''' def __init__(self, data): # workaround for (apparently) corrupt downloaded data clean_data = ''.join([l[1:-5] for l in data.splitlines()]) self.rows = clean_data.split(',') @property def points(self): points = [] bp = BasePoint(x=0, y=0, z=0, ih=0, b_zero_st=0.0 ) for row in self.rows: fs = row.split('+') try: pid = fs[1][:-3] except IndexError: continue text = fs[-1][0:5] try: th = float(fs[0][:-1]) except ValueError: continue coordorder = 'NEZ' dist = float(fs[2].split('m')[0]) angle = deg_to_gon(float(fs[3][:-1]) / 10000) z_angle = deg_to_gon(float(fs[4][:-3]) / 10000) p = PolarPoint(angle_unit='gon', z_angle_type='z', dist_type='s', dist=dist, angle=angle, z_angle=z_angle, th=th, base_point=bp, pid=pid, text=text, coordorder=coordorder) f = Feature(p.to_point(), desc=text, id=pid) points.append(f) logger.debug(points) return points totalopenstation-0.5.3/totalopenstation/formats/trimble_are.py000066400000000000000000000041141477035261600250620ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/trimble_are.py # Copyright 2009 Luca Bianconi # Copyright 2009 Stefano Costa # Copyright 2009 Alessandro Bezzi # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Feature, Parser, Point class FormatParser(Parser): def is_point(self, line): is_point = False if "5=" and "4=" and "37=" and "38=" and "39=" in line: is_point = True return is_point def get_point(self, chunk): tokens = {} rows = chunk.splitlines() for i in rows: if i.startswith('5='): tokens['n'] = i.split('=')[1] if i.startswith('4='): tokens['p'] = i.split('=')[1] if i.startswith('37='): tokens['x'] = i.split('=')[1] if i.startswith('38='): tokens['y'] = i.split('=')[1] if i.startswith('39='): tokens['z'] = i.split('=')[1] tokens['text'] = rows[0] try: p = Point(tokens['y'], tokens['x'], tokens['z']) f = Feature(p, desc=tokens['p'], id=tokens['n']) except KeyError: pass else: return f def split_points(self): splitted_points = self.data.split('0=') return splitted_points totalopenstation-0.5.3/totalopenstation/formats/zeiss_r5.py000066400000000000000000000054661477035261600243530ustar00rootroot00000000000000## -*- coding: utf-8 -*- # filename: formats/zeiss_r5.py # Copyright 2015 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import logging from . import Feature, Point logger = logging.getLogger(__name__) class FormatParser: def __init__(self, data): self.rows = (r for r in data.splitlines()) @property def points(self): '''Point features.''' points = [] def record(recstr): fields = recstr.split('|') record_fields = {} adr, reco, coords = fields[1], fields[2], fields[3:6] record_fields['Adr'] = adr.split()[1].strip() record_fields['type'] = reco[0:2] if record_fields['type'] == 'KR': record_fields['id'] = reco[6:10] record_fields['desc'] = reco[3:6] for xyz in coords: coord = xyz[0] value = xyz[1:].strip() if value.endswith(' m'): value = value[0:-2] if len(value) > 2: record_fields[coord] = value elif record_fields['type'] == 'TR': record_fields['desc'] = reco[3:10] logger.info(f"record_fields : {record_fields}") return record_fields for row in self.rows: if row.startswith('END'): break else: rec = record(row) if rec['type'] == 'KR': try: point = Point(rec['X'], rec['Y'], rec['Z']) except KeyError: try: point = Point(rec['X'], rec['Y']) except KeyError: continue finally: feature = Feature(point, desc=rec['desc'], id=rec['id']) points.append(feature) logger.debug(points) return points totalopenstation-0.5.3/totalopenstation/formats/zeiss_rec_500.py000066400000000000000000000055431477035261600251560ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/zeiss_rec_500.py # Copyright 2008-2011 Stefano Costa # Copyright 2008 Luca Bianconi # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Feature, Parser, Point class FormatParser(Parser): def is_point(self, line): try: tokens = { 'sequence': line[0:7], 'pid': line[8:27], 'text': line[27:32], 'X_str': line[36], 'x': line[38:50], 'Y_str': line[51], 'y': line[53:66], 'Z_str': line[67], 'z': line[69:80], } int(tokens['sequence']) int(tokens['pid']) float(tokens['x']) float(tokens['y']) float(tokens['z']) assert tokens['X_str'] == 'X' assert tokens['Y_str'] == 'Y' assert tokens['Z_str'] == 'Z' except (ValueError, IndexError, AssertionError): is_point = False else: is_point = True return is_point def get_point(self, line): '''Gets a point from a line retrieving basic data.''' tokens = { 'pid': line[8:27].strip(), # the result is more elegant than 'text': line[27:32].strip(), # the code (Heisenberg rocks!) 'x': line[38:50].strip(), 'y': line[53:66].strip(), 'z': line[69:80].strip(), } point_id = int(tokens['pid']) text = str(tokens['text']) # note that for now we keep floats into strings to avoid approximation # problems, provided that for writing DXF a string is sufficient. # FIXME before introducing new output formats. # We could use string formatting operations to store data as floats # and convert them to strings with the needed precision on the fly. x = str(tokens['x']) y = str(tokens['y']) z = str(tokens['z']) # Even here it would have been better not giving x and y the # wrong values(the inverted ones)but directly the right ones! p = Point(y, x, z) f = Feature(p, id=point_id, desc=text) return f totalopenstation-0.5.3/totalopenstation/models/000077500000000000000000000000001477035261600220335ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/models/__init__.py000066400000000000000000000102741477035261600241500ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: formats/__init__.py # Copyright 2008-2009 Luca Bianconi # Copyright 2023 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import serial import sys from time import sleep from threading import Event, Thread from totalopenstation.utils.upref import UserPrefs class Connector(serial.Serial, Thread): '''Connect to a total station. For more information : `Pyserial documentation `_ Args: port: Device name or :const:`None`. baudrate (int): Baud rate such as 9600 or 115200 etc. bytesize: Number of data bits. parity: Enable parity checking. stopbits: Number of stop bits. timeout (float): Set a read timeout value. xonxoff (bool): Enable software flow control. rtscts (bool): Enable hardware (RTS/CTS) flow control. bool dsrdtr (bool): Enable hardware (DSR/DTR) flow control. writeTimeout (float): Set a write timeout value. ''' def __init__(self, port=None, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0, writeTimeout=None, dsrdtr=None): self.upref = UserPrefs() self.sleeptime = float(self.upref.getvalue('sleeptime')) Thread.__init__(self) self.dl_started = Event() self.dl_finished = Event() serial.Serial.__init__(self, port=port, baudrate=baudrate, bytesize=bytesize, parity=parity, stopbits=stopbits, timeout=timeout, xonxoff=xonxoff, rtscts=rtscts, writeTimeout=writeTimeout, dsrdtr=dsrdtr) def open(self): '''Open the serial link. ''' serial.Serial.open(self) def download(self): '''Download method for user interfaces. First the class must be instantiated, then the port is open and the transfer from the device can start. Once the transfer is finished the user interface should call this method.''' n = self.inWaiting() result = self.read(n) # looks like there is a maximum buffer of 4096 characters, so we have # to wait for a short time and iterate the process until finished sleep(self.sleeptime) while self.inWaiting() > 0: result = result + self.read(self.inWaiting()) sleep(self.sleeptime) self.result = result def fast_download(self): '''Implement a *fast* download method that requires less user input. Inside, it calls download() itself, just wrapping it inside another loop that checks whether there's input coming from the serial port: when data become to appear, download() can start. ''' while self.inWaiting() == 0: sleep(self.sleeptime) self.dl_started.set() self.download() self.dl_finished.set() def run(self): self.fast_download() BUILTIN_MODELS = { 'leica_tcr_1205': ('leica_tcr_1205', 'ModelConnector', 'Leica TCR 1205'), 'zeiss_elta_r55': ('zeiss_elta_r55', 'ModelConnector', 'Zeiss Elta R55'), 'nikon_npl_322plus': ('nikon_npl_322plus', 'ModelConnector','Nikon NPL 322+'), 'nikon_npl_350': ('nikon_npl_350', 'ModelConnector','Nikon NPL 350'), 'leica_tcr_705': ('leica_tcr_705', 'ModelConnector', 'Leica TCR 705'), 'trimble': ('trimble', 'ModelConnector', 'Trimble'), 'topcon_gpt_3005': ('topcon_gpt_3005', 'ModelConnector', 'Topcon GPT 3005'), 'custom': ('custom', 'CustomConnector', 'Custom/Unknown'), } totalopenstation-0.5.3/totalopenstation/models/custom.py000066400000000000000000000020021477035261600237110ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: custom.py # Copyright 2008 Luca Bianconi # Copyright 2008,2011 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Connector class CustomConnector(Connector): def __init__(self, port, **kwargs): Connector.__init__(self, port=port, **kwargs) totalopenstation-0.5.3/totalopenstation/models/leica_tcr_1205.py000066400000000000000000000017751477035261600250130ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: leica_tcr_1205.py # Copyright 2008 Luca Bianconi # Copyright 2008,2011 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import * class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, baudrate=19200) totalopenstation-0.5.3/totalopenstation/models/leica_tcr_705.py000066400000000000000000000017741477035261600247360ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: leica_tcr_705.py # Copyright 2009 Luca Bianconi # Copyright 2009,2011 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import * class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, baudrate=19200) totalopenstation-0.5.3/totalopenstation/models/nikon_npl_322plus.py000066400000000000000000000017331477035261600256720ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: nikon_npl_322plus.py # Copyright 2023 Sebastian Gutwein # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import * class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, baudrate=9600, xonxoff=True) totalopenstation-0.5.3/totalopenstation/models/nikon_npl_350.py000066400000000000000000000017261477035261600247710ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: nikon_npl_350.py # Copyright 2008,2011 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import * class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, baudrate=1200, xonxoff=True) totalopenstation-0.5.3/totalopenstation/models/topcon_gpt_3005.py000066400000000000000000000017351477035261600252360ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: topcon gpt 3005.py # Copyright 2021 Enzo Cocca # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Connector class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, baudrate=9600 , bytesize=8) totalopenstation-0.5.3/totalopenstation/models/trimble.py000066400000000000000000000023061477035261600240440ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: trimble.py # Copyright 2009 Luca Bianconi # Copyright 2009,2011 Stefano Costa # Copyright 2009 Alessandro Bezzi # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import * class ModelConnector(Connector): """Trimble Geodimeter 600""" def __init__(self, port): Connector.__init__( self, port=port, baudrate=9600, bytesize=8, stopbits=1, parity='N') totalopenstation-0.5.3/totalopenstation/models/zeiss_elta_r55.py000066400000000000000000000020011477035261600252330ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: zeiss_elta_r55.py # Copyright 2008 Luca Bianconi # Copyright 2008-2011 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Connector class ModelConnector(Connector): def __init__(self, port): Connector.__init__(self, port=port, bytesize=7) totalopenstation-0.5.3/totalopenstation/output/000077500000000000000000000000001477035261600221105ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/output/__init__.py000066400000000000000000000023641477035261600242260ustar00rootroot00000000000000#! /usr/bin/env python __all__ = ["tops_csv", "tops_dxf", "tops_dat", "tops_sql", "tops_txt", "tops_geojson", "tops_landxml"] class Builder: def __init__(self, data): """Init method which **must** be overridden in the child class to have a working builder. Args: data (:class:`formats.Parser`): A list of :class:`formats.Feature` """ self.data = data def process(self): """Action for building the output string. This method **must** be overridden in the child class to have a working builder. Process the input data (processing data). This is because we want to keep the generation of output separated from saving it to disk. Return: str: A string representing the value to output. """ pass BUILTIN_OUTPUT_FORMATS = { 'dxf': ('tops_dxf', 'OutputFormat', 'DXF'), 'csv': ('tops_csv', 'OutputFormat', 'CSV'), 'sql': ('tops_sql', 'OutputFormat', 'OGC-SQL'), 'dat': ('tops_dat', 'OutputFormat', 'DAT'), 'txt': ('tops_txt', 'OutputFormat', 'Text'), 'geojson': ('tops_geojson', 'OutputFormat', 'GeoJSON'), 'landxml': ('tops_landxml', 'OutputFormat', 'LandXML') } totalopenstation-0.5.3/totalopenstation/output/tops_csv.py000066400000000000000000000052421477035261600243250ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_csv.py # Copyright 2019 Stefano Costa # Copyright 2019 Damien Gaignon # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import csv import io from . import Builder class OutputFormat(Builder): """ Exports points data in CSV format. ``data`` should be an iterable containing Feature objects. """ def __init__(self, data): self.data = data self.output = io.StringIO() fieldnames = ['pid', 'type', 'point_name', 'x', 'y', 'z', 'angle', 'z_angle', 'distance', 'th', 'ih', 'circle', 'station'] self.writer = csv.DictWriter(self.output, quoting=csv.QUOTE_NONNUMERIC, fieldnames=fieldnames) self.writer.writeheader() def process(self): for feature in self.data: row = { 'pid': feature.id, 'type': feature.desc, 'x' : feature.geometry.x, 'y': feature.geometry.y } try: # not all input formats include z coordinates row['z'] = feature.geometry.z except ValueError: row['z'] = '' # a few cases with simple yes/no logic for prop in ['point_name', 'ih', 'circle', 'z_angle', 'th']: row[prop] = feature.properties.get(prop, '') # empty string as default value # not all input formats include azimuth/angle row['angle'] = feature.properties.get('azimuth', feature.properties.get('angle', '')) # not all input formats include distance row['distance'] = feature.properties.get('slope_dist', feature.properties.get('horizontal_dist', '')) # not all input formats include station name row['station'] = feature.properties.get('st_name', '') self.writer.writerow(row) return self.output.getvalue() totalopenstation-0.5.3/totalopenstation/output/tops_dat.py000066400000000000000000000024651477035261600243060ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_dat.py # Copyright 2008-2010 Stefano Costa # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Builder def to_dat(point): result = f"{point.id} {point.id} {point.geometry.x} {point.geometry.y}\r\n" return result class OutputFormat(Builder): """ Exports points data in DAT format suitable for use with Archis. ``data`` must be an iterable containing Feature objects. """ def __init__(self, data): self.data = data def process(self): lines = [to_dat(point) for point in self.data] output = "".join(lines) return output totalopenstation-0.5.3/totalopenstation/output/tops_dxf.py000066400000000000000000000142161477035261600243140ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_dxf.py # Copyright 2008-2009 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Builder class OutputFormat(Builder): """ Exports points data in AutoCAD DXF format. It is based on the official DXF2000 documentation. Works with AutoCAD versions ranging at least from 2005 up to 2009, and QCAD. ``data`` should be an iterable (e.g. list) containing one iterable (e.g. tuple) for each point. The default order is PID, x, y, z, TEXT. This is consistent with our current standard. """ def __init__(self, data, separate_layers=True): self.data = data self.separate_layers = separate_layers self.text_height = 0.05 def process(self): '''Process the input data and return a string as output. This is because we want to keep the generation of output separated from saving it to disk.''' result = '' # header result += '999\nDXF created from Total Open Station\n' result += ' 0\nSECTION\n' result += ' 2\nHEADER\n' result += ' 9\n$ACADVER\n' result += ' 1\nAC1009\n' # R11 result += ' 0\nENDSEC\n' # extract layer list codes = set([p.desc for p in self.data]) codes = [c.replace('.','_') for c in codes] layers = dict(enumerate(codes)) colors = dict((i, j % 255) for i, j in zip(list(layers.values()), list(layers.keys()))) # layer table result += ' 0\nSECTION\n 2\nTABLES\n 0\nTABLE\n 2\nLAYER\n' for l in codes: if self.separate_layers is True: result += ' 0\nLAYER\n' # start definition of LAYER result += ' 5\n10\n' # LAYER handle result += f' 2\n{l}_POINTS\n' # LAYER name result += ' 70\n0\n' # LAYER is not frozen result += f' 62\n{int(colors[l]) + 1}\n' # LAYER color result += ' 6\nCONTINUOUS\n' # LAYER linetype result += ' 0\nLAYER\n' # same as above result += ' 5\n10\n' result += f' 2\n{l}_Z_COORDS\n' result += ' 70\n0\n' result += f' 62\n{int(colors[l]) + 1}\n' result += ' 6\nCONTINUOUS\n' result += ' 0\nLAYER\n' # ditto result += ' 5\n10\n' result += f' 2\n{l}_LABELS\n' result += ' 70\n0\n' result += f' 62\n{int(colors[l]) + 1}\n' result += ' 6\nCONTINUOUS\n' else: result += ' 0\nLAYER\n' # ditto result += ' 5\n10\n' result += f' 2\n{l}\n' # LAYER name w/o any suffix result += ' 70\n0\n' result += f' 62\n{int(colors[l]) + 1}\n' result += ' 6\nCONTINUOUS\n' result += ' 0\nENDTAB\n 0\nENDSEC\n' # drawing entities result += ' 0\nSECTION\n 2\nENTITIES\n' for p in self.data: p_layer = p.desc geom = p.geometry if geom.geom_type == 'Point': if self.separate_layers is True: layer_point = f"{p_layer}_POINTS" layer_z_text = f"{p_layer}_Z_COORD" layer_id_text = f"{p_layer}_LABELS" else: layer_point = layer_z_text = layer_id_text = p_layer p_yz = str(float(geom.y) - (self.text_height * 1.2)) # add point result += ' 0\nPOINT\n' result += f' 8\n{layer_point}\n' result += f' 10\n{geom.x}\n' result += f' 20\n{geom.y}\n' # add ID number result += ' 0\nTEXT\n' result += f' 1\n{p.id}\n' result += f' 8\n{layer_id_text}\n' result += f' 10\n{geom.x}\n' result += f' 20\n{geom.y}\n' result += f' 40\n{self.text_height:01.2f}\n' result += ' 62\n256\n' try: geom.z except ValueError: pass else: # add Z value as string result += ' 0\nTEXT\n' result += f' 1\n{geom.z}\n' result += f' 8\n{layer_z_text}\n' result += f' 10\n{geom.x}\n' result += f' 20\n{p_yz}\n' result += f' 40\n{self.text_height:01.2f}\n' result += ' 62\n256\n' elif geom.geom_type == 'LineString': result += ' 0\nPOLYLINE\n' result += f' 8\n{p_layer}\n' result += ' 6\nCONTINUOUS\n' result += ' 62\n256\n' result += ' 66\n1\n' result += ' 70\n0\n' for v in geom.coords: result += ' 0\nVERTEX\n' result += f' 8\n{p_layer}\n' result += f' 10\n{v[0]}\n' # x result += f' 20\n{v[1]}\n' # y try: result += f' 30\n{v[2]}\n' # z except IndexError: result += ' 30\n0\n' result += ' 0\nSEQEND\n' else: raise NotImplementedError result += ' 0\nENDSEC\n 0\nEOF\n' return result totalopenstation-0.5.3/totalopenstation/output/tops_geojson.py000066400000000000000000000021621477035261600251740ustar00rootroot00000000000000# -*- coding: utf-8 -*- # filename: tops_geojson.py # Copyright 2009 Stefano Costa # This file is part of Total Open Station. # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import json from totalopenstation.formats import FeatureCollection from . import Builder class OutputFormat(Builder): '''A GeoJSON output driver.''' def __init__(self, data): self.feature_collection = FeatureCollection(data) def process(self): return json.dumps(self.feature_collection.__geo_interface__) totalopenstation-0.5.3/totalopenstation/output/tops_landxml.py000066400000000000000000000037041477035261600251720ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_landxml.py # Copyright 2015 Damien Gaignon # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from totalopenstation.formats.landxml import Survey, LandXML from . import Builder class OutputFormat(Builder): """ Exports points data in LandXML format. ``data`` should be an iterable containing Feature objects. This is consistent with our current standard. """ def __init__(self, data): self.data = data def _get_feature(self, feature): kwargs = {} kwargs["x"] = feature.geometry.x kwargs["y"] = feature.geometry.y try: kwargs["z"] = feature.geometry.z except ValueError: pass for key,value in feature.properties.items(): kwargs[key] = value return kwargs def process(self): root = Survey() for feature in self.data: kwargs = self._get_feature(feature) if feature.desc == "PO": root.raw_observation(**kwargs) if feature.desc == "PT": root.cg_point(**kwargs) if feature.desc == "ST": root.setup(**kwargs) xml = LandXML() xml.append(root.survey) return xml.to_string() totalopenstation-0.5.3/totalopenstation/output/tops_sql.py000066400000000000000000000045761477035261600243420ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_sql.py # Copyright 2019 Stefano Costa # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Builder def to_sql(point, tablename): '''Generate SQL line corresponding to the input point. At this moment the column names are fixed, but they could change in the future. The default names are reasonable.''' params = { 'wkt': to_wkt(point), 'tablename': tablename, 'pid': point.id, 'text': point.desc} sql_string = f"INSERT INTO {params['tablename']}" sql_string += "(point_id, point_geom, point_text) VALUES" sql_string += f"({params['pid']},GeomFromText('{params['wkt']}'),'{params['text']}');\n" return sql_string def to_wkt(point): x = point.geometry.x y = point.geometry.y try: point.geometry.z except ValueError: wkt_representation = f'POINT ({point.geometry.x} {point.geometry.y})' else: wkt_representation = f'POINT Z ({point.geometry.x} {point.geometry.y} {point.geometry.z})' return wkt_representation class OutputFormat(Builder): """ Exports points data in SQL format suitable for use with PostGIS & friends. http://postgis.refractions.net/documentation/manual-1.3/ch04.html#id2986280 has an example of loading an SQL file into a PostgreSQL database. ``data`` must be an iterable containing Feature objects. """ def __init__(self, data, tablename='topsdata'): self.data = data self.tablename = tablename def process(self): lines = [to_sql(e, self.tablename) for e in self.data] lines.insert(0, 'BEGIN;\n') lines.append('COMMIT;\n') output = "".join(lines) return output totalopenstation-0.5.3/totalopenstation/output/tops_txt.py000066400000000000000000000026411477035261600243510ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: tops_txt.py # Copyright 2008 Luca Bianconi # Copyright 2019 Stefano Costa # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . from . import Builder def to_txt(d): try: string = f"{d.geometry.x} {d.geometry.y} {d.geometry.z}\n" except ValueError: string = f"{d.geometry.x} {d.geometry.y}\n" return string class OutputFormat(Builder): """ Exports points data in TXT (space-separated) format line by line. ``data`` should be an iterable of Feature objects. """ def __init__(self, data): self.data = data def process(self): lines = [to_txt(e) for e in self.data] output = "".join(lines) return output totalopenstation-0.5.3/totalopenstation/tests/000077500000000000000000000000001477035261600217125ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/tests/__init__.py000066400000000000000000000013521477035261600240240ustar00rootroot00000000000000import importlib import pytest from totalopenstation.output import BUILTIN_OUTPUT_FORMATS class BaseTestOutput: '''This base class is inherited by all output test modules. pytest will not run the test here because the class name does not start with "test". Child classes must implement a setup fixture, marked as @pytest.fixture. ''' @pytest.mark.parametrize( 'output_format', [ of for of in BUILTIN_OUTPUT_FORMATS ] ) def test_output_format(self, output_format, setup): tup = BUILTIN_OUTPUT_FORMATS[output_format] mod, cls, name = tup outputclass = getattr(importlib.import_module(f"totalopenstation.output.{mod}"), cls) assert outputclass(self.fp.points).process() totalopenstation-0.5.3/totalopenstation/tests/test_csv.py000066400000000000000000000013161477035261600241170ustar00rootroot00000000000000import unittest from totalopenstation.formats import Feature, Point from totalopenstation.output.tops_csv import OutputFormat class TestCSVOutput(unittest.TestCase): def setUp(self): self.data = [ Feature(Point(12.8, 76.3, 56.2), desc='PT', point_name='TEST POINT', id=1), Feature(Point(19.8, 26.3, 46.2), desc='PT', point_name='TEST POINT #2', id=2), ] def test_output(self): self.output = OutputFormat(self.data).process() self.assertEqual(self.output.splitlines()[1], '1,"PT","TEST POINT",12.8,76.3,56.2,"","","","","","",""') totalopenstation-0.5.3/totalopenstation/tests/test_dxf.py000066400000000000000000000022141477035261600241030ustar00rootroot00000000000000import unittest from totalopenstation.formats import Feature, LineString, Point from totalopenstation.output.tops_dxf import OutputFormat class TestCSVOutput(unittest.TestCase): def setUp(self): self.data = [ Feature(Point(12.8, 76.3, 56.2), desc='TESTPOINT', id=1), Feature(Point(19.8, 26.3, 46.2), desc='TESTPOINT2', id=2), Feature(LineString(((17.8, 26.0, 41.2), (18.8, 26.6, 44.2), (24.8, 26.9, 42.2))), desc='TESTLINE', id=3), ] def test_output(self): self.output = OutputFormat(self.data, separate_layers=False).process() self.assertEqual(self.output.splitlines()[1], 'DXF created from Total Open Station') self.assertEqual(self.output.splitlines()[67], 'TESTPOINT') self.assertEqual(self.output.splitlines()[103], 'TESTPOINT2') self.assertEqual(self.output.splitlines()[139], 'TESTLINE') self.assertEqual(self.output.splitlines()[183], 'EOF') totalopenstation-0.5.3/totalopenstation/tests/test_geojson.py000066400000000000000000000022401477035261600247650ustar00rootroot00000000000000import json import unittest from totalopenstation.formats import Feature, FeatureCollection, Point from totalopenstation.output.tops_geojson import OutputFormat class TestGeoJSONOutput(unittest.TestCase): def setUp(self): self.data = [ Feature(Point(12.8, 76.3, 56.2), desc='TEST POINT', id=1), Feature(Point(19.8, 26.3, 46.2), desc='TEST POINT #2', id=2), ] def test_output(self): self.maxDiff = None self.output = OutputFormat(self.data).process() ref_output = '''{"type": "FeatureCollection", "bbox": [12.8, 26.3, 19.8, 76.3], "features": [{"type": "Feature", "bbox": [12.8, 76.3, 12.8, 76.3], "geometry": {"type": "Point", "bbox": [12.8, 76.3, 12.8, 76.3], "coordinates": [12.8, 76.3, 56.2]}, "properties": {"desc": "TEST POINT"}, "id": 1}, {"type": "Feature", "bbox": [19.8, 26.3, 19.8, 26.3], "geometry": {"type": "Point", "bbox": [19.8, 26.3, 19.8, 26.3], "coordinates": [19.8, 26.3, 46.2]}, "properties": {"desc": "TEST POINT #2"}, "id": 2}]}''' self.assertEqual(json.loads(self.output), json.loads(ref_output)) totalopenstation-0.5.3/totalopenstation/tests/test_landxml.py000066400000000000000000000061431477035261600247660ustar00rootroot00000000000000import unittest from totalopenstation.formats import Feature, Point from totalopenstation.formats.landxml import FormatParser from totalopenstation.output.tops_landxml import OutputFormat class TestLandXMLParser(unittest.TestCase): def setUp(self): with open('sample_data/landxml.xml') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[3].geometry.x, 515.41808873) self.assertAlmostEqual(self.fp.points[3].geometry.y, 442.67044336) self.assertAlmostEqual(self.fp.points[3].geometry.z, -1.69773328) def test_feature(self): self.assertEqual(self.fp.points[1].id, 1) self.assertEqual(self.fp.points[1].point_name, 'STAZLIB4') self.assertEqual(self.fp.points[1].desc, 'PT') self.assertEqual(self.fp.points[4].point_name, '902') self.assertEqual(self.fp.points[4].desc, 'PT') def test_linestring(self): self.ls = self.fp.build_linestring() self.assertAlmostEqual(self.ls.coords[2][0], 449.72036753) class TestLandXMLOutput(unittest.TestCase): def setUp(self): self.data = [ Feature(Point(12.8, 76.3, 56.2), desc='PT', point_name='TEST POINT', id=1), Feature(Point(19.8, 26.3, 46.2), desc='PT', point_name='TEST POINT #2', id=2), Feature(Point(7189.8, 5719.7, 972.6), desc='ST', id=3, point_name='STATION', ih=1.5), Feature(Point(6385.4, 4201.6, 943.1), desc='PO', id=4, point_name='TEST POINT #3', z_angle_type='z', dist_type='s', angle=0, z_angle=90.585, dist=1718.28, th=1.5, station_name="STATION") ] def test_output(self): self.output = OutputFormat(self.data).process() self.assertEqual(self.output.splitlines()[9], '\t\t\t12.8 76.3 56.2') self.assertEqual(self.output.splitlines()[10], '\t\t\t19.8 26.3 46.2') self.assertIn('6385.4 4201.6 943.1') totalopenstation-0.5.3/totalopenstation/tests/test_leica_gsi.py000066400000000000000000000046521477035261600252510ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.leica_gsi import FormatParser from . import BaseTestOutput class TestLeicaGSI16Parser(unittest.TestCase): def setUp(self): with open('sample_data/leica_gsi/leica_gsi16_gurob.gsi') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[0].geometry.x, 8.0757244) self.assertAlmostEqual(self.fp.points[0].geometry.y, 11.21674196) self.assertAlmostEqual(self.fp.points[0].geometry.z, -0.2890493) def test_feature(self): self.assertEqual(self.fp.points[0].id, 2) self.assertEqual(self.fp.points[0].point_name, 'GDEM5415') self.assertEqual(self.fp.points[0].desc, 'PT') self.assertEqual(self.fp.points[1].point_name, 'GDEM5416') self.assertEqual(self.fp.points[0].desc, 'PT') def test_linestring(self): self.ls = self.fp.build_linestring() self.assertAlmostEqual(self.ls.coords[0][0], 8.0757244) class TestLeicaGSI16Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/leica_gsi/leica_gsi16_gurob.gsi') as testdata: self.fp = FormatParser(testdata.read()) class TestLeicaGSI8Parser(unittest.TestCase): def setUp(self): with open('sample_data/leica_gsi/leica_gsi8_ertola.gsi') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[0].geometry.x, 515.836) self.assertAlmostEqual(self.fp.points[0].geometry.y, 525.871) self.assertAlmostEqual(self.fp.points[0].geometry.z, 3.079) def test_feature(self): self.assertEqual(self.fp.points[0].id, 1) self.assertEqual(self.fp.points[0].desc, 'PT') self.assertEqual(self.fp.points[0].point_name, '1') self.assertEqual(self.fp.points[1].desc, 'PT') self.assertEqual(self.fp.points[1].point_name, '2') def test_linestring(self): self.ls = self.fp.build_linestring() self.assertAlmostEqual(self.ls.coords[0][0], 515.836) self.assertAlmostEqual(self.ls.coords[3][2], 2.553) self.assertAlmostEqual(self.ls.bounds[0], -7.4660913) class TestLeicaGSI8Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/leica_gsi/leica_gsi16_gurob.gsi') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_leica_tcr_1205.py000066400000000000000000000023211477035261600257150ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.leica_tcr_1205 import FormatParser from . import BaseTestOutput class TestLeicaTCR1205Parser(unittest.TestCase): def setUp(self): with open('sample_data/leica_tcr_1205') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[1].geometry.x, 450402.042) self.assertAlmostEqual(self.fp.points[1].geometry.y, 205885.618) self.assertAlmostEqual(self.fp.points[1].geometry.z, 61.309) def test_feature(self): self.assertEqual(self.fp.points[1].id, '10001') self.assertEqual(self.fp.points[1].desc, 'Line0001') self.assertEqual(self.fp.points[2].desc, 'Line0001') def test_linestring(self): self.ls = self.fp.build_linestring() self.assertAlmostEqual(self.ls.coords[6][0], 450403.738) self.assertAlmostEqual(self.ls.coords[6][1], 205883.360) self.assertAlmostEqual(self.ls.coords[6][2], 61.318) class TestLeicaTCR1205Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/leica_tcr_1205') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_leica_tcr_705.py000066400000000000000000000016651477035261600256530ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.leica_tcr_705 import FormatParser from . import BaseTestOutput class TestLeicaTCR705Parser(unittest.TestCase): def setUp(self): with open('sample_data/leica_tcr_705') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[1].geometry.x, 1002.825) self.assertAlmostEqual(self.fp.points[1].geometry.y, 999.529) self.assertAlmostEqual(self.fp.points[1].geometry.z, 98.430) def test_feature(self): self.assertEqual(self.fp.points[1].id, '101') self.assertEqual(self.fp.points[1].desc, 'WALL01') self.assertEqual(self.fp.points[0].desc, 'WALL01') class TestLeicaTCR705Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/leica_tcr_705') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_nikon.py000066400000000000000000000026361477035261600244500ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.nikon_raw_v200 import FormatParser from . import BaseTestOutput class TestNikonParser(unittest.TestCase): def setUp(self): with open('sample_data/nikon_raw_v200/nikon_raw_v200.tops') as testdata: self.fp = FormatParser(testdata.read()) with open('sample_data/nikon_raw_v200/nikon_dtm.tops') as testdata2: self.fp2 = FormatParser(testdata2.read()) def test_points(self): self.assertAlmostEqual(self.fp.points[1].geometry.x, 0.0) def test_basepoint(self): self.assertAlmostEqual(self.fp.points[0].geometry.x, 0.0) self.assertAlmostEqual(self.fp.points[0].geometry.y, 0.0) self.assertAlmostEqual(self.fp2.points[7].geometry.x, 10000.08905808) self.assertAlmostEqual(self.fp2.points[7].geometry.y, 10000.30257267) def test_feature(self): self.assertEqual(self.fp.points[3].id, 3) self.assertEqual(self.fp.points[3].desc, 'PT') class TestNikonRAWOutput(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/nikon_raw_v200/nikon_raw_v200.tops') as testdata: self.fp = FormatParser(testdata.read()) class TestNikonRAW2Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/nikon_raw_v200/nikon_dtm.tops') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_polar.py000066400000000000000000000047761477035261600244560ustar00rootroot00000000000000import unittest from totalopenstation.formats import Point from totalopenstation.formats.polar import BasePoint, PolarPoint class TestPolar(unittest.TestCase): def setUp(self): self.bp0 = BasePoint(x='0', y='0', z='0', ih='1.0', b_zero_st='0.0') self.bp1 = BasePoint(x='0', y='0', z='0', ih='1.324', b_zero_st='0.0') self.p0 = PolarPoint(angle_unit='deg', z_angle_type='z', dist_type='s', dist=9, angle=180, z_angle=90, th=0, base_point=self.bp0, pid=1, text='Test Point', coordorder='ENZ') self.p1 = PolarPoint(angle_unit='gon', z_angle_type='z', dist_type='s', dist=24.567, angle=34.120, z_angle=100, th=1.500, base_point=self.bp0, pid=2, text='Real Point', coordorder='NEZ') self.p2 = PolarPoint(angle_unit='dms', z_angle_type='z', dist_type='s', dist=13.825, angle=35.45100, z_angle=91.17510, th=1.300, base_point=self.bp1, pid=3, text='Real Point', coordorder='ENZ') def test_polar(self): p0_test = Point(0.0, -9.0, 1.0) self.assertAlmostEqual(self.p0.to_point().x, p0_test.x) self.assertAlmostEqual(self.p0.to_point().y, p0_test.y) self.assertAlmostEqual(self.p0.to_point().z, p0_test.z) p1_test = Point(21.1222392859, 12.5454572076, -0.5) self.assertAlmostEqual(self.p1.to_point().x, p1_test.x) self.assertAlmostEqual(self.p1.to_point().y, p1_test.y) self.assertAlmostEqual(self.p1.to_point().z, p1_test.z) p2_test = Point(8.0757244, 11.21674196, -0.2890493) self.assertAlmostEqual(self.p2.to_point().x, p2_test.x) self.assertAlmostEqual(self.p2.to_point().y, p2_test.y) self.assertAlmostEqual(self.p2.to_point().z, p2_test.z) totalopenstation-0.5.3/totalopenstation/tests/test_rw5.py000066400000000000000000000021521477035261600240400ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.carlson_rw5 import FormatParser from . import BaseTestOutput class TestCarlsonRW5Parser(unittest.TestCase): def setUp(self): with open('sample_data/carlson_rw5/Leica1200.rw5') as testdata: fp = FormatParser(testdata.read()) self.pts = list(fp.points) def test_point_xy(self): self.assertAlmostEqual(self.pts[0].geometry.x, 942130.662, places=3) self.assertAlmostEqual(self.pts[0].geometry.y, 16556174.237, places=3) @unittest.expectedFailure def test_point_z(self): self.assertAlmostEqual(self.pts[0].geometry.z, 20.053, places=3) def test_feature(self): self.assertEqual(self.pts[1].point_name, '108') self.assertEqual(self.pts[2].id, 2) self.assertEqual(self.pts[4].properties['attrib'][0], 'LIGHT POLE') self.assertEqual(self.pts[3].desc, 'PT') class TestRW5Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/carlson_rw5/Leica1200.rw5') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_sokkia_sdr33.py000066400000000000000000000022301477035261600256170ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.sokkia_sdr33 import FormatParser from . import BaseTestOutput class TestSokkiaParser(unittest.TestCase): def setUp(self): with open('sample_data/sokkia_sdr33.tops') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[0].geometry.coords[0][1], 509.970) self.assertAlmostEqual(self.fp.points[0].geometry.y, 509.970) self.assertAlmostEqual(self.fp.points[0].geometry.coords[0][0], 937.274) self.assertAlmostEqual(self.fp.points[0].geometry.coords[0][2], 20.053) def test_feature(self): self.assertEqual(self.fp.points[0].id, 31) self.assertEqual(self.fp.points[0].desc, '11') self.assertEqual(self.fp.points[1].desc, '11') def test_linestring(self): self.ls = self.fp.build_linestring() self.assertAlmostEqual(self.ls.coords[0][0], 937.274) class TestSokkiaOutput(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/sokkia_sdr33.tops') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_topcon_gts.py000066400000000000000000000016731477035261600255110ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.topcon_gts import FormatParser from . import BaseTestOutput class TestTopconGTSParser(unittest.TestCase): def setUp(self): with open('sample_data/topcon_gts_229') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[0].geometry.x, -5247.0753003) self.assertAlmostEqual(self.fp.points[0].geometry.y, 5049.9025715) self.assertAlmostEqual(self.fp.points[0].geometry.z, 64289.3662938) def test_feature(self): self.assertEqual(self.fp.points[0].id, '2') self.assertEqual(self.fp.points[0].desc, '00099') self.assertEqual(self.fp.points[1].desc, '00101') class TestTopconGTSOutput(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/topcon_gts_229') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_trimble_are.py000066400000000000000000000016761477035261600256220ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.trimble_are import FormatParser from . import BaseTestOutput class TestTrimbleAREParser(unittest.TestCase): def setUp(self): with open('sample_data/trimble/BSG-08-11-19.are') as testdata: self.fp = FormatParser(testdata.read()) def test_point(self): self.assertAlmostEqual(self.fp.points[1].geometry.x, 499.622) self.assertAlmostEqual(self.fp.points[1].geometry.y, 497.857) self.assertAlmostEqual(self.fp.points[1].geometry.z, 1.348) def test_feature(self): self.assertEqual(self.fp.points[1].id, '3') self.assertEqual(self.fp.points[1].desc, 'FIX') self.assertEqual(self.fp.points[0].desc, 'TEST') class TestTrimbleAREOutput(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/trimble/BSG-08-11-19.are') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_zeiss.py000066400000000000000000000025401477035261600244610ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.zeiss_rec_500 import FormatParser from . import BaseTestOutput class TestZeissParser(unittest.TestCase): def setUp(self): testdata = ' 0076 576 A28 X 72.702 Y -92.823 Z 156.620 ' self.fp = FormatParser(testdata) def test_zeiss(self): self.assertTrue(self.fp.is_point(self.fp.data)) self.assertEqual(self.fp.points[0].geometry.y, 72.702) self.assertEqual(self.fp.points[0].geometry.x, -92.823) self.assertEqual(len(self.fp.points), 1) class TestZeissExceptionValue(unittest.TestCase): def setUp(self): testdata = ' 0076 576 A28 X 72.702 Y -92.823 Z 156.620 ' self.fp = FormatParser(testdata) def test_exceptions(self): self.assertRaises(ValueError, self.fp.get_point, self.fp.data) class TestZeissExceptionIndex(unittest.TestCase): def setUp(self): testdata = 'END' self.fp = FormatParser(testdata) def test_exceptions(self): self.assertRaises(ValueError, self.fp.get_point, self.fp.data) class TestZeissRecOutput(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/zeiss_elta_r55/zeiss_elta_r55-REC_500.tops') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/tests/test_zeiss_r5.py000066400000000000000000000016621477035261600250730ustar00rootroot00000000000000import unittest import pytest from totalopenstation.formats.zeiss_r5 import FormatParser from . import BaseTestOutput class TestZeissR5(unittest.TestCase): def setUp(self): with open('sample_data/zeiss_elta_r55/zeiss_elta_r55-R5.tops') as testdata: self.fp = FormatParser(testdata.read()) self.feature = self.fp.points[11] self.point = self.feature.geometry def test_point(self): self.assertAlmostEqual(self.point.x, 6.554) self.assertAlmostEqual(self.point.y, 50.896) self.assertAlmostEqual(self.point.z, 11.334) def test_feature(self): self.assertEqual(self.feature.id, '1108') self.assertEqual(self.feature.desc, '67R') class TestZeissR5Output(BaseTestOutput): @pytest.fixture def setup(self): with open('sample_data/zeiss_elta_r55/zeiss_elta_r55-R5.tops') as testdata: self.fp = FormatParser(testdata.read()) totalopenstation-0.5.3/totalopenstation/utils/000077500000000000000000000000001477035261600217105ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/utils/__init__.py000066400000000000000000000000001477035261600240070ustar00rootroot00000000000000totalopenstation-0.5.3/totalopenstation/utils/scanwin32.py000066400000000000000000000146361477035261600241030ustar00rootroot00000000000000import ctypes import re def ValidHandle(value): if value == 0: raise ctypes.WinError() return value NULL = 0 HDEVINFO = ctypes.c_int BOOL = ctypes.c_int CHAR = ctypes.c_char PCTSTR = ctypes.c_char_p HWND = ctypes.c_uint DWORD = ctypes.c_ulong PDWORD = ctypes.POINTER(DWORD) ULONG = ctypes.c_ulong ULONG_PTR = ctypes.POINTER(ULONG) #~ PBYTE = ctypes.c_char_p PBYTE = ctypes.c_void_p class GUID(ctypes.Structure): _fields_ = [ ('Data1', ctypes.c_ulong), ('Data2', ctypes.c_ushort), ('Data3', ctypes.c_ushort), ('Data4', ctypes.c_ubyte*8), ] def __str__(self): data4 = ''.join([f"{d:02x}" for d in self.Data4[:2]]) data5 = ''.join([f"{d:02x}" for d in self.Data4[2:]]) return f"{{{self.Data1:08x}-{self.Data2:04x}-{self.Data3:04x}-{data4}-{data5}}}" class SP_DEVINFO_DATA(ctypes.Structure): _fields_ = [ ('cbSize', DWORD), ('ClassGuid', GUID), ('DevInst', DWORD), ('Reserved', ULONG_PTR), ] def __str__(self): return f"ClassGuid:{self.ClassGuid} DevInst:{self.DevInst}" PSP_DEVINFO_DATA = ctypes.POINTER(SP_DEVINFO_DATA) class SP_DEVICE_INTERFACE_DATA(ctypes.Structure): _fields_ = [ ('cbSize', DWORD), ('InterfaceClassGuid', GUID), ('Flags', DWORD), ('Reserved', ULONG_PTR), ] def __str__(self): return f"InterfaceClassGuid:{self.InterfaceClassGuid} Flags:{self.Flags}" PSP_DEVICE_INTERFACE_DATA = ctypes.POINTER(SP_DEVICE_INTERFACE_DATA) PSP_DEVICE_INTERFACE_DETAIL_DATA = ctypes.c_void_p SetupDiDestroyDeviceInfoList = ctypes.windll.setupapi.SetupDiDestroyDeviceInfoList SetupDiDestroyDeviceInfoList.argtypes = [HDEVINFO] SetupDiDestroyDeviceInfoList.restype = BOOL SetupDiGetClassDevs = ctypes.windll.setupapi.SetupDiGetClassDevsA SetupDiGetClassDevs.argtypes = [ctypes.POINTER(GUID), PCTSTR, HWND, DWORD] SetupDiGetClassDevs.restype = ValidHandle #HDEVINFO SetupDiEnumDeviceInterfaces = ctypes.windll.setupapi.SetupDiEnumDeviceInterfaces SetupDiEnumDeviceInterfaces.argtypes = [HDEVINFO, PSP_DEVINFO_DATA, ctypes.POINTER(GUID), DWORD, PSP_DEVICE_INTERFACE_DATA] SetupDiEnumDeviceInterfaces.restype = BOOL SetupDiGetDeviceInterfaceDetail = ctypes.windll.setupapi.SetupDiGetDeviceInterfaceDetailA SetupDiGetDeviceInterfaceDetail.argtypes = [HDEVINFO, PSP_DEVICE_INTERFACE_DATA, PSP_DEVICE_INTERFACE_DETAIL_DATA, DWORD, PDWORD, PSP_DEVINFO_DATA] SetupDiGetDeviceInterfaceDetail.restype = BOOL SetupDiGetDeviceRegistryProperty = ctypes.windll.setupapi.SetupDiGetDeviceRegistryPropertyA SetupDiGetDeviceRegistryProperty.argtypes = [HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD] SetupDiGetDeviceRegistryProperty.restype = BOOL GUID_CLASS_COMPORT = GUID(0x86e0d1e0, 0x8089, 0x11d0, (ctypes.c_ubyte*8)(0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73)) DIGCF_PRESENT = 2 DIGCF_DEVICEINTERFACE = 16 INVALID_HANDLE_VALUE = 0 ERROR_INSUFFICIENT_BUFFER = 122 SPDRP_HARDWAREID = 1 SPDRP_FRIENDLYNAME = 12 ERROR_NO_MORE_ITEMS = 259 def comports(available_only=True): """This generator scans the device registry for com ports and yields port, desc, hwid. If available_only is true only return currently existing ports.""" flags = DIGCF_DEVICEINTERFACE if available_only: flags |= DIGCF_PRESENT g_hdi = SetupDiGetClassDevs(ctypes.byref(GUID_CLASS_COMPORT), None, NULL, flags); #~ for i in range(256): for dwIndex in range(256): did = SP_DEVICE_INTERFACE_DATA() did.cbSize = ctypes.sizeof(did) if not SetupDiEnumDeviceInterfaces( g_hdi, None, ctypes.byref(GUID_CLASS_COMPORT), dwIndex, ctypes.byref(did) ): if ctypes.GetLastError() != ERROR_NO_MORE_ITEMS: raise ctypes.WinError() break dwNeeded = DWORD() # get the size if not SetupDiGetDeviceInterfaceDetail( g_hdi, ctypes.byref(did), None, 0, ctypes.byref(dwNeeded), None ): # Ignore ERROR_INSUFFICIENT_BUFFER if ctypes.GetLastError() != ERROR_INSUFFICIENT_BUFFER: raise ctypes.WinError() # allocate buffer class SP_DEVICE_INTERFACE_DETAIL_DATA_A(ctypes.Structure): _fields_ = [ ('cbSize', DWORD), ('DevicePath', CHAR*(dwNeeded.value - ctypes.sizeof(DWORD))), ] def __str__(self): return f"DevicePath:{self.DevicePath}" idd = SP_DEVICE_INTERFACE_DETAIL_DATA_A() idd.cbSize = 5 devinfo = SP_DEVINFO_DATA() devinfo.cbSize = ctypes.sizeof(devinfo) if not SetupDiGetDeviceInterfaceDetail( g_hdi, ctypes.byref(did), ctypes.byref(idd), dwNeeded, None, ctypes.byref(devinfo) ): raise ctypes.WinError() # hardware ID szHardwareID = ctypes.create_string_buffer('\0' * 250) if not SetupDiGetDeviceRegistryProperty( g_hdi, ctypes.byref(devinfo), SPDRP_HARDWAREID, None, ctypes.byref(szHardwareID), ctypes.sizeof(szHardwareID) - 1, None ): # Ignore ERROR_INSUFFICIENT_BUFFER if ctypes.GetLastError() != ERROR_INSUFFICIENT_BUFFER: raise ctypes.WinError() # friendly name szFriendlyName = ctypes.create_string_buffer('\0' * 250) if not SetupDiGetDeviceRegistryProperty( g_hdi, ctypes.byref(devinfo), SPDRP_FRIENDLYNAME, None, ctypes.byref(szFriendlyName), ctypes.sizeof(szFriendlyName) - 1, None ): # Ignore ERROR_INSUFFICIENT_BUFFER if ctypes.GetLastError() != ERROR_INSUFFICIENT_BUFFER: raise ctypes.WinError() port_name = re.search(r"\((.*)\)", szFriendlyName.value).group(1) if len(port_name) > 4: port_name = '\\\\.\\'+port_name yield port_name, szFriendlyName.value, szHardwareID.value SetupDiDestroyDeviceInfoList(g_hdi) if __name__ == '__main__': import serial for port, desc, hwid in comports(): print(f"{port}: {desc} ({hwid})") print(" "*10, serial.Serial(port)) #test open # list of all ports the system knows print("-"*60) for port, desc, hwid in comports(False): print(f"{port:-10s}: {desc} ({hwid})") totalopenstation-0.5.3/totalopenstation/utils/upref.py000066400000000000000000000057521477035261600234140ustar00rootroot00000000000000#! /usr/bin/env python # -*- coding: utf-8 -*- # filename: upref.py # Copyright 2019 Stefano Costa # Copyright 2010 Luca Bianconi # # This file is part of Total Open Station. # # Total Open Station is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Total Open Station is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Total Open Station. If not, see # . import atexit import logging import os import os.path from configparser import ConfigParser, NoSectionError, NoOptionError logger = logging.getLogger(__name__) class UserPrefs(ConfigParser): '''Manage user preferences for GUI options and last used values. Proof-of-concept. Notes: * user preferences path is hardcoded here * returns a dictionary of user preferences * preferences will be set through a dictionary as well''' OPTIONS = { 'model': '', 'port': '', 'sleeptime': '1.0', # added in 0.3.1 } def __init__(self): ConfigParser.__init__(self) USER_PREFS_PATH = '~/.totalopenstation/totalopenstation.cfg' self.upref = os.path.expanduser(USER_PREFS_PATH) try: with open(self.upref) as f: self.read(f) except FileNotFoundError: self.initfile() else: try: self.getvalue('model') except NoSectionError: self.initfile() def initfile(self): try: self.write() except FileNotFoundError: os.mkdir(os.path.dirname(self.upref)) finally: self.write() logger.info('User preferences do not exist!') self.add_section('topsconfig') for k,v in list(self.OPTIONS.items()): self.set('DEFAULT', k, v) logger.info('Created new user preferences file with default values') def write(self): ''' override ConfigParser.write() method ''' ConfigParser.write(self, open(self.upref, 'w')) def getdict(self): ''' get config file values ''' current_options = {} for k in list(self.OPTIONS.keys()): current_options[k] = self.getvalue(k) return current_options def getvalue(self, option): ''' get specific config file value ''' value = self.get('topsconfig', option) return value def setvalues(self, values): ''' set specific config file value ''' for k, v in list(values.items()): self.set('topsconfig', str(k), str(v)) self.write() totalopenstation-0.5.3/tox.ini000066400000000000000000000003661477035261600164610ustar00rootroot00000000000000[tox] env_list = py38 py39 py310 py311 py312 minversion = 4.14.2 [testenv] description = run the tests with pytest package = wheel wheel_build_env = .pkg deps = pytest>=6 commands = pytest {tty:--color=yes} {posargs}