Coder Social home page Coder Social logo

xseof's Introduction

xseof

Overview

I/O library for the ESA EOF files.

This package provides a set of "dataclasses", comapible with the xsdata Python library, to access and make I/O operation on the XML files in the ESA Earth Observation Ground Segment File Format (EOF) [1].

In particular, this package supports all the XML based orbit and attitude products described in [1].

Project links

Home Page:https://github.com/avalentino/xseof
Download:https://pypi.org/project/xseof

Installation

Standard installation via pip:

$ pip install xseof

Installation via conda:

$ conda install -c avalentino xseof

Testing

Move to the the source directory root and run the following command:

$ python3 -m pytest

Basic usage

Load a generic orbit file:

>>> import xseof
>>> orbit = xseof.load(
        "MA1_TEST_AUX_ORBRES_20210610T045753_20210610T065853_0001.EOF")

Access and print loaded data:

>>> import pprint
>>> orbit.earth_observation_header.fixed_header.notes = ""
>>> pprint.pprint(orbit.earth_observation_header.fixed_header)
FixedHeaderType(
    file_name='MA1_TEST_AUX_ORBRES_20210610T045753_20210610T065853_0001',
    file_description='FOS Orbit File',
    notes='',
    mission='MetOpSGA1',
    file_class='TEST',
    file_type='AUX_ORBRES',
    validity_period=ValidityPeriodType(
        validity_start='UTC=2021-06-10T04:57:53',
        validity_stop='UTC=2021-06-10T05:02:23'),
    file_version='0001',
    eoffs_version='3.0',
    source=SourceType(system='System Identification as per Ground '
                            'Segment File Format Standard '
                            '(PE-TN-ESA-GS-0001)',
                    creator='Creator Identification as per '
                            'Ground Segment File Format Standard '
                            '(PE-TN-ESA-GS-0001)',
                    creator_version='Creator Version '
                                    'Identification as per '
                                    'Ground Segment File Format '
                                    'Standard '
                                    '(PE-TN-ESA-GS-0001)',
                    creation_date='UTC=2022-06-23T10:06:43'))

>>> print(orbit.data_block.list_of_osvs.count)
10
>>> pprint.pprint(orbit.data_block.list_of_osvs.osv[0])
OsvType(tai='TAI=2021-06-10T04:57:17.817060',
    utc='UTC=2021-06-10T04:57:52.817060',
    ut1='UT1=2021-06-10T04:57:53.117059',
    absolute_orbit=999,
    x=PositionComponentType(value=Decimal('-1606749.988'), unit='m'),
    y=PositionComponentType(value=Decimal('-5677008.966'), unit='m'),
    z=PositionComponentType(value=Decimal('-4135675.595'), unit='m'),
    vx=VelocityComponentType(value=Decimal('-2876.652288'), unit='m/s'),
    vy=VelocityComponentType(value=Decimal('-3541.028256'), unit='m/s'),
    vz=VelocityComponentType(value=Decimal('5985.303441'), unit='m/s'),
    quality='0000000000000')

Load an EOF file of a specific type:

>>> from xseof import int_attref
>>> quaternions = int_attref.load(
        "MA1_TEST_INT_ATTREF_20210610T045753_20210610T065853_0001.EOF")

Load data form string:

>>> from xseof import aux_orbres
>>> filename = "MA1_TEST_AUX_ORBRES_20210610T045753_20210610T065853_0001.EOF"
>>> with open(filename) as fd:
...     data = fd.read()
>>> orbit = aux_orbres.from_string(data)

License

Copyright 2022-2024 Antonio Valentino

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific langua

[1](1, 2) https://eop-cfi.esa.int/Repo/PUBLIC/DOCUMENTATION/SYSTEM_SUPPORT_DOCS/PE-TN-ESA-GS-0001%20EO%20GS%20File%20Format%20Standard%203.0%20signed.pdf

xseof's People

Contributors

avalentino avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.