GithubHelp home page GithubHelp logo

poliastro / czml3 Goto Github PK

View Code? Open in Web Editor NEW
38.0 38.0 31.0 1.34 MB

Python 3 library to write CZML

Home Page: https://pypi.org/project/czml3/

License: MIT License

Python 100.00%
czml orbital-simulation python python3

czml3's Introduction

No Maintenance Intended

poliastro is archived and will not be developed any further, see #1640 for more context. Forks welcome, please respect the license by retaining attribution, and consider rebranding your fork if you intend to develop it in the long run. If you still use poliastro in your work, see below how to cite it. For a more complete background of the project, see https://conference.scipy.org/proceedings/scipy2022/juanluis_cano_poliastro.html. Per Python ad astra!

poliastro Logo

Name Website Authors Maintainers Version
poliastro https://www.poliastro.space Juan Luis Cano Rodriguez Jorge Martinez poliastro development team 0.18.dev0

poliastro_badge ci_badge docs_badge coverage_badge pre_commit_badge python_badge pypi_badge license_badge doi_badge astropy_badge mailing_badge chat_badge backers_badge sponsors_badge binder_badge code_badge

poliastro is an open source (MIT) pure Python library for interactive Astrodynamics and Orbital Mechanics, with a focus on ease of use, speed, and quick visualization. It provides a simple and intuitive API, and handles physical quantities with units.

Some features include orbit propagation, solution of the Lambert's problem, conversion between position and velocity vectors and classical orbital elements and orbit plotting, among others. It focuses on interplanetary applications, but can also be used to analyze artificial satellites in Low-Earth Orbit (LEO).

If you use poliastro on your project, please let us know. Use the DOI to cite poliastro in your publications:

Juan Luis Cano Rodríguez, Jorge Martinez, et al.. (2023). poliastro: poliastro 0.17.0. Zenodo. 10.5281/zenodo.6817189

Multiple examples image

Requirements

poliastro requires the following Python packages:

  • numpy for basic numerical routines
  • astropy for physical units and time handling
  • numba for accelerating the code
  • jplephem for the planetary ephemerides using SPICE kernels
  • matplotlib for orbit plotting
  • plotly for 2D and 3D interactive orbit plotting
  • scipy for root finding and numerical propagation

poliastro is supported on Linux, macOS and Windows on Python 3.8 to 3.10.

Installation

Multiple installation methods are supported by poliastro, including:

Logo Platform Command
PyPI logo PyPI python -m pip install poliastro
Conda Forge logo Conda Forge conda install poliastro --channel conda-forge
GitHub logo GitHub python -m pip install https://github.com/poliastro/poliastro/archive/main.zip

For other installation methods, see the alternative installation methods.

Documentation

Complete documentation, including a quickstart guide and an API reference, can be read on the wonderful Read the Docs. Multi-version documentation includes:

Examples, background and talks

There is a great variety of examples demostrating the capabilities of poliastro. Examples can be accessed in various ways:

poliastro is also promoted through conferences and talks. These are the latest talks in some of the most popular conferences about scientific software:

Conference Talk
SciPy 2022 Per Python ad astra: Interactive Astrodynamics with poliastro
OSCW 2019 Interplanetary mission analysis with poliastro
EuroSciPy 2019 Can we make Python fast without sacrificing readability? numba for Astrodynamics
EuroPython 2016 Per Python ad Astra

License

poliastro is released under the MIT license, hence allowing commercial use of the library. Please refer to the COPYING file.

The MIT License (MIT)

Copyright (c) 2012-2023 Juan Luis Cano Rodríguez, Jorge Martínez Garrido, and the poliastro development team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

If you are planning to use poliastro with commercial purposes consider sponsoring the project.

Problems and suggestions

If for any reason you get an unexpected error message or an incorrect result, or you want to let the developers know about your use case, please open a new issue in the issue tracker and we will try to answer promptly.

Contributing and community support

This project exists thanks to all the people who contribute! poliastro is a community project, hence all contributions are more than welcome! For more information, head to the CONTRIBUTING.md file.

Release announcements and general discussion take place on our mailing list.

For further clarifications and discussions, feel free to join poliastro's chat room.

Contributors image

Backers and sponsors

poliastro requires finnacial support to mantain its high quality standars. The money is used to renew the web domain and updating the documentation hosting subscription among others.

If you would like to support poliastro, consider becoming a backer or becoming a sponsor.

Thanks to all our backers!

Backers

Thanks to all our sponsors!

Sponsors Sponsors

Frequently asked questions

  • What's up with the name?

    poliastro comes from Polimi, which is the shortened name of the Politecnico di Milano, see the acknowledgement from the original author. Grazie mille!

  • Is poliastro validated?

    Yes! poliastro is a community project that strives to be easy to use, while at the same time producing correct results that are validated against other commonly used Astrodynamics software such as GMAT and Orekit.

  • Can I suggest new features for poliastro?

    Sure, we encourage you to open an issue so we can discuss future feature additions!

  • What's the future of the project?

    poliastro is actively maintained and receiving an influx of new contributors thanks to the generous sponsorship of Google, the European Space Agency, and NumFOCUS. The best way to get an idea of the roadmap is to see the milestones of the project.

czml3's People

Contributors

astrojuanlu avatar gorgiastro avatar idanmiara avatar mixxen avatar mwarnick123 avatar rengrub avatar sedictious avatar stoops-ml avatar vishwa2710 avatar vishwaloft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

czml3's Issues

Support JupyterLab

Edit: See current status in this comment.

At the moment, czml3.widget.CZMLWidget has a straightforward _repr_html_ that prints some HTML. However, this is not how custom widgets are supposed to be implemented [citation needed]

We should write our own custom Jupyter widget so it's compatible, at least, with modern JupyterLab.

Edit: Adding more information to this description for completeness

Rather than a JupyterLab extension, if I understand correctly we would need to create a custom Jupyter widget. Therefore, we should be using either https://github.com/jupyter-widgets/widget-cookiecutter (JavaScript, barebones) or https://github.com/jupyter-widgets/widget-ts-cookiecutter (TypeScript + bells & whistles), which are described in https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Low%20Level.html

However, we should wait for the TypeScript one to be updated: jupyter-widgets/widget-ts-cookiecutter#83

These cookiecutters already make use of https://github.com/jupyter/jupyter-packaging.

For inspiration, we could also have a look at https://github.com/bloomberg/bqplot, https://github.com/jovyan/pythreejs, https://github.com/ellisonbg/ipyleaflet or https://github.com/matplotlib/ipympl.

With this and https://www.npmjs.com/package/c137.js shared by @TJKoury above, we should have everything we need already.

Cesium Widget full screen does not behave properly in Jupyter

🐞 Problem

Cesium widget has a full-scree button in the lower right hand corner. Pressing it should make the window go full screen, however it has a different behavior. It seems that it makes the entire Jupyter notebook full screen and sets the background outside of the notebook to be the same as a the widget. Screenshot below:

full screen cesium widget doesn't work in browser

🖥 Please paste the output of following commands
Observed on both Chrome Version 80.0.3987.163 (Official Build) (64-bit) and Opera v67.0.3575.115 on Windows 10 Version 1909.

  • conda info -a (only if you have conda)
(poliastroprereqs-nopresintalled) C:\Users\IMDes>conda info -a

     active environment : poliastroprereqs-nopresintalled
    active env location : C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled
            shell level : 1
       user config file : C:\Users\IMDes\.condarc
 populated config files : C:\Users\IMDes\.condarc
          conda version : 4.8.2
    conda-build version : 3.18.9
         python version : 3.7.4.final.0
       virtual packages : __cuda=10.2
       base environment : C:\Users\IMDes\Anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/win-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-64
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : C:\Users\IMDes\Anaconda3\pkgs
                          C:\Users\IMDes\.conda\pkgs
                          C:\Users\IMDes\AppData\Local\conda\conda\pkgs
       envs directories : C:\Users\IMDes\Anaconda3\envs
                          C:\Users\IMDes\.conda\envs
                          C:\Users\IMDes\AppData\Local\conda\conda\envs
               platform : win-64
             user-agent : conda/4.8.2 requests/2.22.0 CPython/3.7.4 Windows/10 Windows/10.0.18362
          administrator : False
             netrc file : None
           offline mode : False

# conda environments:
#
base                     C:\Users\IMDes\Anaconda3
calc.py                  C:\Users\IMDes\Anaconda3\envs\calc.py
lowthrustsim             C:\Users\IMDes\Anaconda3\envs\lowthrustsim
plasmapydev              C:\Users\IMDes\Anaconda3\envs\plasmapydev
poliastropreinstalled     C:\Users\IMDes\Anaconda3\envs\poliastropreinstalled
poliastroprereqs-nopresintalled  *  C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled

sys.version: 3.7.4 (default, Aug  9 2019, 18:34:13) [...
sys.prefix: C:\Users\IMDes\Anaconda3
sys.executable: C:\Users\IMDes\Anaconda3\python.exe
conda location: C:\Users\IMDes\Anaconda3\lib\site-packages\conda
conda-build: C:\Users\IMDes\Anaconda3\Scripts\conda-build.exe
conda-convert: C:\Users\IMDes\Anaconda3\Scripts\conda-convert.exe
conda-debug: C:\Users\IMDes\Anaconda3\Scripts\conda-debug.exe
conda-develop: C:\Users\IMDes\Anaconda3\Scripts\conda-develop.exe
conda-env: C:\Users\IMDes\Anaconda3\Scripts\conda-env.exe
conda-index: C:\Users\IMDes\Anaconda3\Scripts\conda-index.exe
conda-inspect: C:\Users\IMDes\Anaconda3\Scripts\conda-inspect.exe
conda-metapackage: C:\Users\IMDes\Anaconda3\Scripts\conda-metapackage.exe
conda-render: C:\Users\IMDes\Anaconda3\Scripts\conda-render.exe
conda-server: C:\Users\IMDes\Anaconda3\Scripts\conda-server.exe
conda-skeleton: C:\Users\IMDes\Anaconda3\Scripts\conda-skeleton.exe
conda-verify: C:\Users\IMDes\Anaconda3\Scripts\conda-verify.exe
user site dirs:

AF_PATH: C:\Program Files\ArrayFire\v3
CIO_TEST: <not set>
CONDA_DEFAULT_ENV: poliastroprereqs-nopresintalled
CONDA_EXE: C:\Users\IMDes\Anaconda3\condabin\..\Scripts\conda.exe
CONDA_EXES: "C:\Users\IMDes\Anaconda3\condabin\..\Scripts\conda.exe"
CONDA_PREFIX: C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled
CONDA_PROMPT_MODIFIER: (poliastroprereqs-nopresintalled)
CONDA_PYTHON_EXE: C:\Users\IMDes\Anaconda3\python.exe
CONDA_ROOT: C:\Users\IMDes\Anaconda3
CONDA_SHLVL: 1
CUDA_PATH: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
GOPATH: C:\Users\IMDes\go
HOMEPATH: \Users\IMDes
NVTOOLSEXT_PATH: C:\Program Files\NVIDIA Corporation\NvToolsExt\
PATH: C:\Users\IMDes\Anaconda3;C:\Users\IMDes\Anaconda3\Library\mingw-w64\bin;C:\Users\IMDes\Anaconda3\Library\usr\bin;C:\Users\IMDes\Anaconda3\Library\bin;C:\Users\IMDes\Anaconda3\Scripts;C:\Users\IMDes\Anaconda3\bin;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled\Library\mingw-w64\bin;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled\Library\usr\bin;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled\Library\bin;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled\Scripts;C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled\bin;C:\Users\IMDes\Anaconda3\condabin;C:\Users\IMDes\Anaconda3;C:\Users\IMDes\Anaconda3\Library\mingw-w64\bin;C:\Users\IMDes\Anaconda3\Library\usr\bin;C:\Users\IMDes\Anaconda3\Library\bin;C:\Users\IMDes\Anaconda3\Scripts;C:\Python27;C:\Python27\Scripts;C:\Program Files\Haskell\bin;C:\Program Files\Haskell Platform\8.6.5\lib\extralibs\bin;C:\Program Files\Haskell Platform\8.6.5\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Wolfram Research\WolframScript;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\WINDOWS\System32\OpenSSH;C:\Program Files\MATLAB\R2019b\bin;C:\TDM-GCC-64\bin;C:\Program Files\Microsoft SQL Server\120\Tools\Binn;C:\Program Files\PuTTY;C:\Program Files\NVIDIA Corporation\Nsight Compute 2019.5.0;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Haskell Platform\8.6.5\mingw\bin;C:\Program Files\nodejs;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Program Files\CMake\bin;C:\Go\bin;C:\Gcc64\bin;C:\Users\IMDes\AppData\Roaming\cabal\bin;C:\Users\IMDes\AppData\Roaming\local\bin;C:\Users\IMDes\.cargo\bin;C:\Users\IMDes\AppData\Local\Microsoft\WindowsApps;C:\Users\IMDes\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\IMDes\AppData\Local\GitHubDesktop\bin;C:\Program Files\ArrayFire\v3\lib;C:\Users\IMDes\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64;C:\Program Files\JetBrains\PyCharm 2019.3.1\bin;.;C:\Users\IMDes\AppData\Roaming\npm;C:\Users\IMDes\AppData\Local\Box\Box Edit;C:\Users\IMDes\go\bin
PSMODULEPATH: C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
REQUESTS_CA_BUNDLE: <not set>
SSL_CERT_FILE: <not set>
VBOX_MSI_INSTALL_PATH: C:\Program Files\Oracle\VirtualBox\
  • conda list (only if you have conda)
(poliastroprereqs-nopresintalled) C:\Users\IMDes>conda list
# packages in environment at C:\Users\IMDes\Anaconda3\envs\poliastroprereqs-nopresintalled:
#
# Name                    Version                   Build  Channel
appdirs                   1.4.3                    pypi_0    pypi
asn1crypto                1.3.0                    py38_0
astropy                   4.0                      pypi_0    pypi
astroquery                0.4                      pypi_0    pypi
atomicwrites              1.3.0                      py_0
attrs                     19.3.0                     py_0
backcall                  0.1.0                    py38_0
beautifulsoup4            4.8.2                    pypi_0    pypi
blas                      1.0                         mkl
bleach                    3.1.0                      py_0
ca-certificates           2020.1.1                      0
certifi                   2019.11.28               py38_1
cffi                      1.14.0           py38h7a1dbc1_0
chardet                   3.0.4                 py38_1003
colorama                  0.4.3                      py_0
console_shortcut          0.1.1                         4
cryptography              2.8              py38h7a1dbc1_0
cycler                    0.10.0                   py38_0
czml3                     0.5.3                    pypi_0    pypi
decorator                 4.4.2                      py_0
defusedxml                0.6.0                      py_0
distlib                   0.3.0                    pypi_0    pypi
entrypoints               0.3                      py38_0
filelock                  3.0.12                   pypi_0    pypi
freetype                  2.9.1                ha9979f8_1
html5lib                  1.0.1                    pypi_0    pypi
icc_rt                    2019.0.0             h0cc432a_1
icu                       58.2                 ha66f8fd_1
idna                      2.9                        py_1
importlib_metadata        1.5.0                    py38_0
intel-openmp              2020.0                      166
ipykernel                 5.1.4            py38h39e3cac_0
ipython                   7.13.0           py38h5ca1d4c_0
ipython_genutils          0.2.0                    py38_0
jedi                      0.16.0                   py38_0
jinja2                    2.11.1                     py_0
jpeg                      9b                   hb83a4c4_2
json5                     0.9.4                      py_0
jsonschema                3.2.0                    py38_0
jupyter_client            5.3.4                    py38_0
jupyter_core              4.6.1                    py38_0
jupyterlab                1.2.6              pyhf63ae98_0
jupyterlab_server         1.1.0                      py_0
keyring                   21.1.1                   pypi_0    pypi
kiwisolver                1.0.1            py38ha925a31_0
libpng                    1.6.37               h2a8f88b_0
libsodium                 1.0.16               h9d3ae62_0
llvmlite                  0.31.0           py38ha925a31_0
m2w64-gcc-libgfortran     5.3.0                         6
m2w64-gcc-libs            5.3.0                         7
m2w64-gcc-libs-core       5.3.0                         7
m2w64-gmp                 6.1.0                         2
m2w64-libwinpthread-git   5.0.0.4634.697f757               2
markupsafe                1.1.1            py38he774522_0
matplotlib                3.1.3                    py38_0
matplotlib-base           3.1.3            py38h64f37c6_0
mistune                   0.8.4           py38he774522_1000
mkl                       2020.0                      166
mkl-service               2.3.0            py38hb782905_0
mkl_fft                   1.0.15           py38h14836fe_0
mkl_random                1.1.0            py38hf9181ef_0
more-itertools            8.2.0                      py_0
msys2-conda-epoch         20160418                      1
nbconvert                 5.6.1                    py38_0
nbformat                  5.0.4                      py_0
notebook                  6.0.3                    py38_0
numba                     0.48.0           py38h47e9c7a_0
numpy                     1.18.1                   pypi_0    pypi
numpy-base                1.18.1           py38hc3f5095_1
openssl                   1.1.1f               he774522_0
packaging                 20.3                       py_0
pandas                    1.0.1            py38h47e9c7a_0
pandoc                    2.2.3.2                       0
pandocfilters             1.4.2                    py38_1
parso                     0.6.1                      py_0
pickleshare               0.7.5                 py38_1000
pip                       20.0.2                   py38_1
plotly                    4.5.2                      py_0
pluggy                    0.13.1                   py38_0
prometheus_client         0.7.1                      py_0
prompt_toolkit            3.0.3                      py_0
py                        1.8.1                      py_0
pycparser                 2.20                       py_0
pygments                  2.5.2                      py_0
pyopenssl                 19.1.0                   py38_0
pyparsing                 2.4.6                      py_0
pyqt                      5.9.2            py38ha925a31_4
pyrsistent                0.15.7           py38he774522_0
pysocks                   1.7.1                    py38_0
pytest                    5.3.5                    py38_0
python                    3.8.1           h5fd99cc_8_cpython
python-dateutil           2.8.1                      py_0
pytz                      2019.3                     py_0
pywin32                   227              py38he774522_1
pywin32-ctypes            0.2.0                    pypi_0    pypi
pywinpty                  0.5.7                    py38_0
pyzmq                     18.1.1           py38ha925a31_0
qt                        5.9.7            vc14h73c81de_0
qtconsole                 4.7.1                      py_0
qtpy                      1.9.0                      py_0
requests                  2.23.0                   py38_0
retrying                  1.3.3                      py_2
scipy                     1.4.1            py38h9439919_0
send2trash                1.5.0                    py38_0
setuptools                46.0.0                   py38_0
sip                       4.19.13          py38ha925a31_0
six                       1.14.0                   py38_0
soupsieve                 2.0                      pypi_0    pypi
sqlite                    3.31.1               he774522_0
tbb                       2020.0               h74a9793_0
terminado                 0.8.3                    py38_0
testpath                  0.4.4                      py_0
toml                      0.10.0                   pypi_0    pypi
tornado                   6.0.4            py38he774522_1
tox                       3.14.6                   pypi_0    pypi
traitlets                 4.3.3                    py38_0
urllib3                   1.25.8                   py38_0
vc                        14.1                 h0510ff6_4
virtualenv                20.0.14                  pypi_0    pypi
vs2015_runtime            14.16.27012          hf0eaf9b_1
w3lib                     1.21.0                   pypi_0    pypi
wcwidth                   0.1.8                      py_0
webencodings              0.5.1                    py38_1
wheel                     0.34.2                   py38_0
win_inet_pton             1.1.0                    py38_0
wincertstore              0.2                      py38_0
winpty                    0.4.3                         4
zeromq                    4.3.1                h33f27b4_3
zipp                      2.2.0                      py_0
zlib                      1.2.11               h62dcd97_3
  • pip freeze
(poliastroprereqs-nopresintalled) C:\Users\IMDes>pip freeze
appdirs==1.4.3
asn1crypto==1.3.0
astropy==4.0
astroquery==0.4
atomicwrites==1.3.0
attrs==19.3.0
backcall==0.1.0
beautifulsoup4==4.8.2
bleach==3.1.0
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
colorama==0.4.3
cryptography==2.8
cycler==0.10.0
czml3==0.5.3
decorator==4.4.2
defusedxml==0.6.0
distlib==0.3.0
entrypoints==0.3
filelock==3.0.12
html5lib==1.0.1
idna==2.9
importlib-metadata==1.5.0
ipykernel==5.1.4
ipython==7.13.0
ipython-genutils==0.2.0
jedi==0.16.0
Jinja2==2.11.1
json5==0.9.4
jsonschema==3.2.0
jupyter-client==5.3.4
jupyter-core==4.6.1
jupyterlab==1.2.6
jupyterlab-server==1.1.0
keyring==21.1.1
kiwisolver==1.0.1
llvmlite==0.31.0
MarkupSafe==1.1.1
matplotlib==3.1.3
mistune==0.8.4
mkl-fft==1.0.15
mkl-random==1.1.0
mkl-service==2.3.0
more-itertools==8.2.0
nbconvert==5.6.1
nbformat==5.0.4
notebook==6.0.3
numba==0.48.0
numpy==1.18.1
packaging==20.3
pandas==1.0.1
pandocfilters==1.4.2
parso==0.6.1
pickleshare==0.7.5
plotly==4.5.2
pluggy==0.13.1
prometheus-client==0.7.1
prompt-toolkit==3.0.3
py==1.8.1
pycparser==2.20
Pygments==2.5.2
pyOpenSSL==19.1.0
pyparsing==2.4.6
pyrsistent==0.15.7
PySocks==1.7.1
pytest==5.3.5
python-dateutil==2.8.1
pytz==2019.3
pywin32==227
pywin32-ctypes==0.2.0
pywinpty==0.5.7
pyzmq==18.1.1
qtconsole==4.7.1
QtPy==1.9.0
requests==2.23.0
retrying==1.3.3
scipy==1.4.1
Send2Trash==1.5.0
sip==4.19.13
six==1.14.0
soupsieve==2.0
terminado==0.8.3
testpath==0.4.4
toml==0.10.0
tornado==6.0.4
tox==3.14.6
traitlets==4.3.3
urllib3==1.25.8
virtualenv==20.0.14
w3lib==1.21.0
wcwidth==0.1.8
webencodings==0.5.1
win-inet-pton==1.1.0
wincertstore==0.2
zipp==2.2.0

Code to reproduce:

from poliastro.examples import molniya, iss
from poliastro.czml.extract_czml import CZMLExtractor
from czml3.widget import CZMLWidget
from czml3.core import Document
start_epoch = iss.epoch
end_epoch = iss.epoch + molniya.period
N = 10

extractor = CZMLExtractor(start_epoch, end_epoch, N)

extractor.add_orbit(molniya, label_text="Molniya")
extractor.add_orbit(iss, label_text="ISS")

with open('play.czml', 'w') as f:
    for l in extractor.packets:
        f.write(l.__str__())
d = extractor.get_document()
CZMLWidget(d)

Another note:
The missing Earth map in the screenshot is fixed by changing to a different map skin. I think this is due to some subscription access or something. That issue is not related to this issue (as far as I know).

Packet does not expect property Point

When trying to reproduce this example:

https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Apps/Sandcastle/gallery/CZML%20Point.html

I get an error:

>>> from czml3 import Packet
>>> Packet(point=...)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() got an unexpected keyword argument 'point'

because in #25 we forgot to add point to the list of expected properties:

czml3/src/czml3/core.py

Lines 39 to 71 in afe4b83

class Packet(BaseCZMLObject):
"""A CZML Packet.
See https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Packet
for further information.
"""
# https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/Packet
KNOWN_PROPERTIES = [
"id",
"delete",
"name",
"parent",
"description",
"availability",
"properties",
"position",
"orientation",
"viewFrom",
"billboard",
"box",
"corridor",
"cylinder",
"ellipse",
"ellipsoid",
"label",
"model",
"path",
"polygon",
"polyline",
"rectangle",
"wall",
]

Publish to PyPi not working

From the GitHub action:

Error: Trusted publishing exchange failure:
Token request failed: the server refused the request for the following reasons:

  • invalid-publisher: valid token, but no corresponding publisher (All lookup strategies exhausted)

This generally indicates a trusted publisher configuration error, but could also indicate an internal error on GitHub or PyPI's part.

The claims rendered below are for debugging purposes only. You should not use them to configure a trusted publisher unless they already match your expectations.

If a claim is not present in the claim set, then it is rendered as MISSING.

  • sub: repo:poliastro/czml3:environment:pypi
  • repository: poliastro/czml3
  • repository_owner: poliastro
  • repository_owner_id: [12](https://github.com/poliastro/czml3/actions/runs/9666271466/job/26665400904#step:4:13)176396
  • job_workflow_ref: poliastro/czml3/.github/workflows/publish-to-pypi.yml@refs/tags/v1.0.0
  • ref: refs/tags/v1.0.0

See https://docs.pypi.org/trusted-publishers/troubleshooting/ for more help.

From PyPi's troubleshooting page:

invalid-pending-publisher and invalid-publisher: the OIDC token itself is well-formed (and has a valid signature), but doesn't match any known (pending) OIDC publisher. This likely indicates a mismatch between the OIDC publisher specified in the user/project settings and the claims represented in the actual OIDC token. Check for typos! If you're using GitHub Actions, check if the workflow is using the same environment as configured when the publisher was configured on PyPI.

Model3D view lost in PR 44

After PR #44, I was unable to plot models in the CZMLWidget().

Here is the code:

from czml3 import Document, Packet, Preamble
from czml3.properties import Model, Position, Orientation, Clock
from czml3.widget import CZMLWidget
import datetime

doc = Document([
    Preamble(name="newsat1_test"),
    Packet(
        position=Position(cartographicDegrees=[-77, 37, 0]),
        orientation=Orientation(unitQuaternion=[0, 0, 0, 1]),
        model=Model(
            gltf="http://localhost:8890/Cesium_Air.glb",  # Para comparar
            scale=2.0,
            minimumPixelSize=128,
        )
    ),
    
])

CZMLWidget(doc)

The widget is display, but no model is rendered.

[feature request] Allow `dict` types for value field in `IntervalValue`

Hello!

I was trying to recreate the simple.czml example. Specifically, the polylines with the leadTime and trailTime fields.
Using CZML3, this requires creating an IntervalValue object as follows:

    IntervalValue(
        start="2012-03-15T15:21:48.776005533Z",
        end="2012-03-15T16:54:06.33371177400113Z",
        value={
                "epoch": "2012-03-15T15:21:48.776005533Z",
                "number": [0, 0, 5537.557706241001, 5537.557706241001],
            }
    )

However, this is not possible due to how the to_json function is currently implemented for the IntervalValue object.

Here is a proposed fix for this issue: #149. Let me know what you think!

Lack of support for positional references

Support is necessary for positional references...

`
polyline":{
...
"arcType":"NONE",
"positions":{
"references":[
"Facility/AGI#position","Satellite/ISS#position"
]
}

`
Position constructor doesn't accept "references" attribute. This comes from the CZML simple example from the sandcastle that is the basis for your "simple" example.

cesium token

I am trying to use my own cesium token. However, it does not seem to work. I am new to Cesium. Any advice? Thanks.

image

Add CI

Good opportunity to try Azure pipelines? Or perhaps just Circle CI

Label.pixelOffset does not appear to work

I am unable to get Label.pixelOffset to work with a list of x/y values.
I would expect it to work like this:
label=Label(pixelOffset=[5,5])

but instead I can only make it work like this:
label=Label( pixelOffset=dict([("cartesian2", [5, 5])]) )

czml3 is looking for new maintainers

Full context: poliastro/poliastro#1640

I don't see the need to archive czml3, we can transition that project.

There's a pending release and a couple of pull requests that need merging. Are there any volunteers to move this project forward?

Please explain your motivation, how you are currently using czml3, and what do you intend to do with it in the future.

Work after switching to attrs

(Copied from #44)

This already passes all the tests locally.

Things that will have to be reworked:

  • Shortcuts, converters

Things I removed and I'd like to bring back:

  • Docstrings

Things I'd like to review:

  • Defaults (we should probably be using default=None everywhere)
  • isinstance (we are inconsistently using positive and negative checks)
  • Validation (we use __attrs_post_init__ but we could use @x.validator instead http://www.attrs.org/en/stable/init.html#decorator)
  • Mixins (are they necessary?)
  • KNOWN_PROPERTIES (can I iterate over attrs properties now instead?)
  • Enumerations (including missing StripeOrientationValue)

Things I'd like to add in the future:

Remove Cesium ion runtime dependency in CZMLWidget

Currently CZMLWidget uses the default Cesium Ion token. With every release of Cesium the old token will be invalidated, breaking old notebooks [citation needed](see CesiumGS/cesium#8433 (comment)). Afaik this token is only required to be able to access the imagery for the basemap via Cesium Ion.

Example notebook Binder
screenshot:
Screenshot_2019-12-12 poliastro_issue817 - Jupyter Notebook

possibles fixes

  • option A: find a new, "long-term" reliable source for hosting the basemaps
  • option B: provide a static basemap
  • something else?

Related issues

Support cartographicDegrees in Position

Interestingly, PositionList supports it:

@property
def cartographicDegrees(self):
"""The list of positions specified in Cartographic WGS84 coordinates, [Longitude, Latitude, Height, Longitude,
Latitude, Height, ...], where Longitude and Latitude are in degrees and Height is in meters."""
return self._cartographic_degrees

However, Position doesn't.

PyPi release cycle

I see that the last release, 0.5.3, was about 10 months ago.
Since then there were many additions and fixes to Master.
Would you please release a new version into PyPi occasionally?
Thanks!

Define scope for first release

I don't plan to implement all CZML by the first release. That would remove all the fun for potential contributors 😛

However, it would be nice to have a minimum set of functionality, plus #1 and #2. We have to define it somehow.

Make get_color more robust

  • If given a Color, return a Color
  • If given a tuple, convert to list
  • If the tuple contains things that resemble integers (i.e. numpy integers) do not crash

Fix inertial transformation

(Asked in the Cesium forum)

When enabling the icrf function on the JavaScript side implemented here:

// To have an inertial (ICRF) view
function icrf(scene, time) {{
var icrfToFixed = Cesium.Transforms.computeIcrfToFixedMatrix(time);
if (Cesium.defined(icrfToFixed)) {{
var camera = viewer.camera;
var offset = Cesium.Cartesian3.clone(camera.position);
var transform = Cesium.Matrix4.fromRotationTranslation(icrfToFixed);
camera.lookAtTransform(transform, offset);
}}
}}
// Temporarily disable inertial view
// until we make it work with 2D Mercator view
// and fix the zoom sensitivity, see
// https://groups.google.com/d/msg/cesium-dev/vuXmepd4T2E/i71tq2I8EAAJ
// viewer.scene.postUpdate.addEventListener(icrf);

There are some strange effects when rotating the view or switching to 2D. We should try to fix those.

Expand README

  • What is CZML? And some examples
  • Add CI badges (see #1)
  • Installation instructions
  • Roadmap
  • Contributor guide / Developer docs

Add version to czml3

The czml3 package doesn't have a version. I propose Semantic Versioning: major.minor.patch.

Further, what should the current version be? 1.0.0 probably makes the most sense as it seems like czml3 is very much out of beta testing.

I'll do a PR once a decision has been made.

Limit multiple inheritance to mixins?

The classes DeletableProperty and InterpolatableProperty define an initializer as well, and therefore need the super() magic to call all the classes in the hierarchy. Apart from producing python/mypy#5887, it complicates the code, so it would be nice to find an alternative.

Drawing arrows does not seem to work properly

I may be trying to accomplish this improperly:

Packet(
           id="Arrow/Arrow-" + str(uuid.uuid4()),
           name="Arrow",
           polyline=Polyline(
               positions=positions,
               material=PolylineArrowMaterial(color=Color(rgba=[200, 100, 30, 255])),
               arcType="NONE",
               width=width
           )
       )

image

PyPi czml3 release is outdated

Please push a new version to PyPi. We want to obtain new changes in the master branch with pip. I can help with this if you give me access. Thanks.

IntervalValue does not accept integer or float

I seem to be unable to insert values other than booleans into an IntervalValue, defined within types.py

I essentially run into this error upon hitting the following function:

    obj_dict.update(**self._value.to_json())

AttributeError: 'int' object has no attribute 'to_json'

And another exception occurs as well

    key = TYPE_MAPPING[type(self._value)]

KeyError: <class 'int'>

This is interesting because I am inserting a number '1' as the value, and json.dumps works on that number.

Now i noticed that TYPE_MAPPING is a dictionary defined at the top.

TYPE_MAPPING = {bool: "boolean"}

Obviously to circumvent the error, all one needs to do is insert the keys for int and/or float

Now my question is, is my integer and float type meant to fail? Does Cesium's interval values not accept intervalvalues of numbers apart from boolean values?

I am trying to create a time-varying width of polylines using the IntervalValues, considering that IntervalValues can accept BooleanValues. I would like to vary the width of the polylines between 1-5 dependent on another parameter in my simulation.

I am using Spyder 4.1.4, Python 3.7,7, My operating system is windows 10.

Here is the class in question

@attr.s(repr=False, frozen=True, kw_only=True)
class IntervalValue(BaseCZMLObject):
    """Value over some interval."""

    _start = attr.ib()
    _end = attr.ib()
    _value = attr.ib()

    def to_json(self):
        obj_dict = {"interval": TimeInterval(start=self._start, end=self._end)}

        try:
            obj_dict.update(**self._value.to_json())
        except AttributeError:
            key = TYPE_MAPPING[type(self._value)]
            obj_dict[key] = self._value

        return obj_dict

Implement equality

>>> from czml3.properties import Color
>>> Color()
{}
>>> Color() == Color()
False

Should it be based on the representation, or the properties?

Testing of poliastro failed with test_czml_add_orbit.py and test_ground_station.py

I'm running poliastro ver. 0.13.0 on an iMacPro running Mac OS X ver. 10.14.6 under Python 3.7.3. In running the test,

python -c "import poliastro.testing; poliastro.testing.test()

I get error messages concerning test_czml_add_orbit and test_ground_station. I'm testing poliastro with the setup.cfg file in the anaconda3 directory disabled (i.e., renamed so as not to be used). czml3 was installed.

The output from the test is contained in the attached file.

Please advise.

Sam Dupree.

poliastro_test_23-Aug-2019.txt

Default branch was renamed to main

For more info: https://github.com/github/renaming

I know this is controversial, and nobody asked for it (yet). Still, I went ahead and unilaterally made the change, to avoid more pain in the future.

This issue is just to notify everyone, please adjust your local environments accordingly:

git branch -m master main
git fetch origin
git branch -u origin/main main

Regardless of whether I like this or not, (1) it's a debate that is not going away, and it will hit every project sooner or later, and (2) I will keep doing things I consider are important and impactful to make the tech industry and the open source universe more welcoming to others, as I've been doing for almost a decade now, and encourage others to do the same.

The open source universe has a diversity, inclusion and representation problem, and we have the moral obligation to fix it. This is just a baby step in that direction. The battle doesn't end here.

Removing white space from document output

First, thank you for this awesome library. My project wouldn't be anywhere near what it is without it.

Is there a good way to remove white space from the document? I found a way to do it, but I feel like it's inefficient/has extra steps.
output = json.dumps(json.loads(str(Document([top] + packets))), separators=(',', ':'))

Removing white space turns a 24MB CZML file into a 9MB CZML file.

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.