New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

OrbitPlotter.set_frame() plots nothing! #469

Closed
shreyasbapat opened this Issue Oct 1, 2018 · 9 comments

Comments

2 participants
@shreyasbapat
Copy link
Member

shreyasbapat commented Oct 1, 2018

While trying to solve this #316 , I wanted to reproduce the error which raised this.
馃悶 Problem

j = Orbit.from_body_ephem(Jupiter)
a = plot_solar_system(outer=False)
a.plot(j, color='k')
a.set_frame(*j.pqw())

This gives a lots of errors like mentioned in this gist: https://gist.github.com/shreyasbapat/2a8679755bba6916c39f0522c0b958ac

馃枼 Please paste the output of following commands

conda info -a

conda list

# Paste your output here:
 active environment : None
       user config file : /home/killerscope/.condarc
 populated config files : 
          conda version : 4.5.11
    conda-build version : 3.10.5
         python version : 3.6.5.final.0
       base environment : /home/killerscope/Softwares/anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/linux-64
                          https://repo.anaconda.com/pkgs/pro/noarch
          package cache : /home/killerscope/Softwares/anaconda3/pkgs
                          /home/killerscope/.conda/pkgs
       envs directories : /home/killerscope/Softwares/anaconda3/envs
                          /home/killerscope/.conda/envs
               platform : linux-64
             user-agent : conda/4.5.11 requests/2.19.1 CPython/3.6.5 Linux/4.17.0-041700-generic ubuntu/18.04 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

# conda environments:
#
base                  *  /home/killerscope/Softwares/anaconda3

sys.version: 3.6.5 |Anaconda, Inc.| (default, Apr 29 ...
sys.prefix: /home/killerscope/Softwares/anaconda3
sys.executable: /home/killerscope/Softwares/anaconda3/bin/python
conda location: /home/killerscope/Softwares/anaconda3/lib/python3.6/site-packages/conda
conda-build: /home/killerscope/Softwares/anaconda3/bin/conda-build
conda-convert: /home/killerscope/Softwares/anaconda3/bin/conda-convert
conda-develop: /home/killerscope/Softwares/anaconda3/bin/conda-develop
conda-env: /home/killerscope/Softwares/anaconda3/bin/conda-env
conda-index: /home/killerscope/Softwares/anaconda3/bin/conda-index
conda-inspect: /home/killerscope/Softwares/anaconda3/bin/conda-inspect
conda-metapackage: /home/killerscope/Softwares/anaconda3/bin/conda-metapackage
conda-render: /home/killerscope/Softwares/anaconda3/bin/conda-render
conda-server: /home/killerscope/Softwares/anaconda3/bin/conda-server
conda-skeleton: /home/killerscope/Softwares/anaconda3/bin/conda-skeleton
conda-verify: /home/killerscope/Softwares/anaconda3/bin/conda-verify
user site dirs: ~/.local/lib/python3.6

CIO_TEST: <not set>
CONDA_ROOT: /home/killerscope/Softwares/anaconda3
DEFAULTS_PATH: /usr/share/gconf/plasma.default.path
MANDATORY_PATH: /usr/share/gconf/plasma.mandatory.path
PATH: /home/killerscope/Softwares/anaconda3/bin:/home/killerscope/Softwares/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
REQUESTS_CA_BUNDLE: <not set>
SSL_CERT_FILE: <not set>
XDG_SEAT_PATH: /org/freedesktop/DisplayManager/Seat0
XDG_SESSION_PATH: /org/freedesktop/DisplayManager/Session1
http_proxy: <set>
https_proxy: <set>


WARNING: could not import _license.show_info
# try:
# $ conda install -n root _license





conda list ->

conda list
# packages in environment at /home/killerscope/Softwares/anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0            py36he11e457_0  
alabaster                 0.7.10           py36h306e16b_0  
anaconda                  5.2.0                    py36_3  
anaconda-client           1.6.14                   py36_0  
anaconda-navigator        1.8.7                    py36_0  
anaconda-project          0.8.2            py36h44fb852_0  
asn1crypto                0.24.0                   py36_0  
astroid                   1.6.3                    py36_0  
astropy                   3.0.2            py36h3010b51_1  
astroquery                0.3.9.dev4961             <pip>
attrs                     18.1.0                   py36_0  
babel                     2.5.3                    py36_0  
backcall                  0.1.0                    py36_0  
backports                 1.0              py36hfa02d7e_1  
backports.shutil_get_terminal_size 1.0.0            py36hfea85ff_2  
beautifulsoup4            4.6.0            py36h49b8c8c_1  
bitarray                  0.8.1            py36h14c3975_1  
bkcharts                  0.2              py36h735825a_0  
blas                      1.0                         mkl  
blaze                     0.11.3           py36h4e06776_0  
bleach                    2.1.3                    py36_0  
blosc                     1.14.3               hdbcaa40_0  
bokeh                     0.12.16                  py36_0  
boto                      2.48.0           py36h6e4cd66_1  
bottleneck                1.2.1            py36haac1ea0_0  
bzip2                     1.0.6                h14c3975_5  
ca-certificates           2018.03.07                    0  
cairo                     1.14.12              h7636065_2  
certifi                   2018.4.16                py36_0  
cffi                      1.11.5           py36h9745a5d_0  
chardet                   3.0.4            py36h0f667ec_1  
click                     6.7              py36h5253387_0  
cloudpickle               0.5.3                    py36_0  
clyent                    1.2.2            py36h7e57e65_1  
colorama                  0.3.9            py36h489cec4_0  
conda                     4.5.11                   py36_0  
conda-build               3.10.5                   py36_0  
conda-env                 2.6.0                h36134e3_1  
conda-verify              2.0.0            py36h98955d8_0  
contextlib2               0.5.5            py36h6c84a62_0  
cryptography              2.2.2            py36h14c3975_0  
curl                      7.60.0               h84994c4_0  
cycler                    0.10.0           py36h93f1223_0  
cython                    0.28.2           py36h14c3975_0  
cytoolz                   0.9.0.1          py36h14c3975_0  
dask                      0.17.5                   py36_0  
dask-core                 0.17.5                   py36_0  
datashape                 0.5.4            py36h3ad6b5c_0  
dbus                      1.13.2               h714fa37_1  
decorator                 4.3.0                    py36_0  
distributed               1.21.8                   py36_0  
docutils                  0.14             py36hb0f60f5_0  
entrypoints               0.2.3            py36h1aec115_2  
et_xmlfile                1.0.1            py36hd6bccc3_0  
expat                     2.2.5                he0dffb1_0  
fastcache                 1.0.2            py36h14c3975_2  
filelock                  3.0.4                    py36_0  
flask                     1.0.2                    py36_1  
flask-cors                3.0.4                    py36_0  
fontconfig                2.12.6               h49f89f6_0  
freetype                  2.8                  hab7d2ae_1  
get_terminal_size         1.0.0                haa9412d_0  
gevent                    1.3.0            py36h14c3975_0  
glib                      2.56.1               h000015b_0  
glob2                     0.6              py36he249c77_0  
gmp                       6.1.2                h6c8ec71_1  
gmpy2                     2.0.8            py36hc8893dd_2  
graphite2                 1.3.11               h16798f4_2  
greenlet                  0.4.13           py36h14c3975_0  
gst-plugins-base          1.14.0               hbbd80ab_1  
gstreamer                 1.14.0               hb453b48_1  
h5py                      2.7.1            py36ha1f6525_2  
harfbuzz                  1.7.6                h5f0a787_1  
hdf5                      1.10.2               hba1933b_1  
heapdict                  1.0.0                    py36_2  
html5lib                  1.0.1            py36h2f9c1c0_0  
icu                       58.2                 h9c2bf20_1  
idna                      2.6              py36h82fb2a8_1  
imageio                   2.3.0                    py36_0  
imagesize                 1.0.0                    py36_0  
intel-openmp              2018.0.0                      8  
ipykernel                 4.8.2                    py36_0  
ipython                   6.4.0                    py36_0  
ipython_genutils          0.2.0            py36hb52b0d5_0  
ipywidgets                7.2.1                    py36_0  
isort                     4.3.4                    py36_0  
itsdangerous              0.24             py36h93cc618_1  
jbig                      2.1                  hdba287a_0  
jdcal                     1.4                      py36_0  
jedi                      0.12.0                   py36_1  
jinja2                    2.10             py36ha16c418_0  
jpeg                      9b                   h024ee3a_2  
jsonschema                2.6.0            py36h006f8b5_0  
jupyter                   1.0.0                    py36_4  
jupyter_client            5.2.3                    py36_0  
jupyter_console           5.2.0            py36he59e554_1  
jupyter_core              4.4.0            py36h7c827e3_0  
jupyterlab                0.32.1                   py36_0  
jupyterlab_launcher       0.10.5                   py36_0  
kiwisolver                1.0.1            py36h764f252_0  
lazy-object-proxy         1.3.1            py36h10fcdad_0  
libcurl                   7.60.0               h1ad7b7a_0  
libedit                   3.1.20170329         h6b74fdf_2  
libffi                    3.2.1                hd88cf55_4  
libgcc-ng                 7.2.0                hdf63c60_3  
libgfortran-ng            7.2.0                hdf63c60_3  
libpng                    1.6.34               hb9fc6fc_0  
libsodium                 1.0.16               h1bed415_0  
libssh2                   1.8.0                h9cfc8f7_4  
libstdcxx-ng              7.2.0                hdf63c60_3  
libtiff                   4.0.9                he85c1e1_1  
libtool                   2.4.6                h544aabb_3  
libxcb                    1.13                 h1bed415_1  
libxml2                   2.9.8                h26e45fe_1  
libxslt                   1.1.32               h1312cb7_0  
llvmlite                  0.23.1           py36hdbcaa40_0  
locket                    0.2.0            py36h787c0ad_1  
lxml                      4.2.1            py36h23eabaa_0  
lzo                       2.10                 h49e0be7_2  
markupsafe                1.0              py36hd9260cd_1  
matplotlib                2.2.2            py36h0e671d2_1  
mccabe                    0.6.1            py36h5ad9710_1  
mistune                   0.8.3            py36h14c3975_1  
mkl                       2018.0.2                      1  
mkl-service               1.1.2            py36h17a0993_4  
mkl_fft                   1.0.1            py36h3010b51_0  
mkl_random                1.0.1            py36h629b387_0  
more-itertools            4.1.0                    py36_0  
mpc                       1.0.3                hec55b23_5  
mpfr                      3.1.5                h11a74b3_2  
mpmath                    1.0.0            py36hfeacd6b_2  
msgpack-python            0.5.6            py36h6bb024c_0  
multipledispatch          0.5.0                    py36_0  
navigator-updater         0.2.1                    py36_0  
nbconvert                 5.3.1            py36hb41ffb7_0  
nbformat                  4.4.0            py36h31c9010_0  
ncurses                   6.1                  hf484d3e_0  
networkx                  2.1                      py36_0  
nltk                      3.3.0                    py36_0  
nose                      1.3.7            py36hcdf7029_2  
notebook                  5.5.0                    py36_0  
numba                     0.38.0           py36h637b7d7_0  
numexpr                   2.6.5            py36h7bf3b9c_0  
numpy                     1.14.3           py36hcd700cb_1  
numpy-base                1.14.3           py36h9be14a7_1  
numpydoc                  0.8.0                    py36_0  
odo                       0.5.1            py36h90ed295_0  
olefile                   0.45.1                   py36_0  
openpyxl                  2.5.3                    py36_0  
openssl                   1.0.2o               h20670df_0  
packaging                 17.1                     py36_0  
pandas                    0.23.0           py36h637b7d7_0  
pandoc                    1.19.2.1             hea2e7c5_1  
pandocfilters             1.4.2            py36ha6701b7_1  
pango                     1.41.0               hd475d92_0  
parso                     0.2.0                    py36_0  
partd                     0.3.8            py36h36fd896_0  
patchelf                  0.9                  hf79760b_2  
path.py                   11.0.1                   py36_0  
pathlib2                  2.3.2                    py36_0  
patsy                     0.5.0                    py36_0  
pcre                      8.42                 h439df22_0  
pep8                      1.7.1                    py36_0  
pexpect                   4.5.0                    py36_0  
pickleshare               0.7.4            py36h63277f8_0  
pillow                    5.1.0            py36h3deb7b8_0  
pip                       10.0.1                   py36_0  
pixman                    0.34.0               hceecf20_3  
pkginfo                   1.4.2                    py36_1  
pluggy                    0.6.0            py36hb689045_0  
ply                       3.11                     py36_0  
prompt_toolkit            1.0.15           py36h17d85b1_0  
psutil                    5.4.5            py36h14c3975_0  
ptyprocess                0.5.2            py36h69acd42_0  
py                        1.5.3                    py36_0  
pycodestyle               2.4.0                    py36_0  
pycosat                   0.6.3            py36h0a5515d_0  
pycparser                 2.18             py36hf9f622e_1  
pycrypto                  2.6.1            py36h14c3975_8  
pycurl                    7.43.0.1         py36hb7f436b_0  
pyflakes                  1.6.0            py36h7bd6a15_0  
pygments                  2.2.0            py36h0d3125c_0  
pylint                    1.8.4                    py36_0  
pyodbc                    4.0.23           py36hf484d3e_0  
pyopenssl                 18.0.0                   py36_0  
pyparsing                 2.2.0            py36hee85983_1  
pyqt                      5.9.2            py36h751905a_0  
pysocks                   1.6.8                    py36_0  
pytables                  3.4.3            py36h02b9ad4_2  
pytest                    3.5.1                    py36_0  
pytest-arraydiff          0.2                      py36_0  
pytest-astropy            0.3.0                    py36_0  
pytest-doctestplus        0.1.3                    py36_0  
pytest-openfiles          0.3.0                    py36_0  
pytest-remotedata         0.2.1                    py36_0  
python                    3.6.5                hc3d631a_2  
python-dateutil           2.7.3                    py36_0  
pytz                      2018.4                   py36_0  
pywavelets                0.5.2            py36he602eb0_0  
pyyaml                    3.12             py36hafb9ca4_1  
pyzmq                     17.0.0           py36h14c3975_0  
qt                        5.9.5                h7e424d6_0  
qtawesome                 0.4.4            py36h609ed8c_0  
qtconsole                 4.3.1            py36h8f73b5b_0  
qtpy                      1.4.1                    py36_0  
readline                  7.0                  ha6073c6_4  
requests                  2.18.4           py36he2e5f8d_1  
rope                      0.10.7           py36h147e2ec_0  
ruamel_yaml               0.15.35          py36h14c3975_1  
scikit-image              0.13.1           py36h14c3975_1  
scikit-learn              0.19.1           py36h7aa7ec6_0  
scipy                     1.1.0            py36hfc37229_0  
seaborn                   0.8.1            py36hfad7ec4_0  
send2trash                1.5.0                    py36_0  
setuptools                39.1.0                   py36_0  
simplegeneric             0.8.1                    py36_2  
singledispatch            3.4.0.3          py36h7a266c3_0  
sip                       4.19.8           py36hf484d3e_0  
six                       1.11.0           py36h372c433_1  
snappy                    1.1.7                hbae5bb6_3  
snowballstemmer           1.2.1            py36h6febd40_0  
sortedcollections         0.6.1                    py36_0  
sortedcontainers          1.5.10                   py36_0  
sphinx                    1.7.4                    py36_0  
sphinxcontrib             1.0              py36h6d0f590_1  
sphinxcontrib-websupport  1.0.1            py36hb5cb234_1  
spyder                    3.2.8                    py36_0  
sqlalchemy                1.2.7            py36h6b74fdf_0  
sqlite                    3.23.1               he433501_0  
statsmodels               0.9.0            py36h3010b51_0  
sympy                     1.1.1            py36hc6d1c1c_0  
tblib                     1.3.2            py36h34cf8b6_0  
terminado                 0.8.1                    py36_1  
testpath                  0.3.1            py36h8cadb63_0  
tk                        8.6.7                hc745277_3  
toolz                     0.9.0                    py36_0  
tornado                   5.0.2                    py36_0  
traitlets                 4.3.2            py36h674d592_0  
typing                    3.6.4                    py36_0  
unicodecsv                0.14.1           py36ha668878_0  
unixodbc                  2.3.6                h1bed415_0  
urllib3                   1.22             py36hbe7ace6_0  
wcwidth                   0.1.7            py36hdf4376a_0  
webencodings              0.5.1            py36h800622e_1  
werkzeug                  0.14.1                   py36_0  
wheel                     0.31.1                   py36_0  
widgetsnbextension        3.2.1                    py36_0  
wrapt                     1.10.11          py36h28b7045_0  
xlrd                      1.1.0            py36h1db9f0c_1  
xlsxwriter                1.0.4                    py36_0  
xlwt                      1.3.0            py36h7b00a1f_0  
xz                        5.2.4                h14c3975_4  
yaml                      0.1.7                had09818_2  
zeromq                    4.2.5                h439df22_0  
zict                      0.1.3            py36h3a3bf81_0  
zlib                      1.2.11               ha838bed_2  

pip freeze | grep astropy

pip freeze | grep poliastro

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

# Paste your output here:
astropy==3.0.4
pytest-astropy==0.3.0

poliastro                          0.12.dev0 /home/killerscope/Local Forks/poliastro/src

馃幆 Goal

Required for #316
馃挕 Possible solutions

馃搵 Steps to solve the problem

  • Comment below about what you've started working on.
  • Add, commit, push your changes
  • Submit a pull request and add this in comments - Addresses #<put issue number here>
  • Ask for a review in comments section of pull request
  • Celebrate your contribution to this project 馃帀
@shreyasbapat

This comment has been minimized.

Copy link
Member

shreyasbapat commented Oct 1, 2018

And finally plots something like this:
image

@Juanlu001

This comment has been minimized.

Copy link
Member

Juanlu001 commented Oct 2, 2018

You didn't fill the template, so I don't know which package versions do you have 馃槈

Also, can you please try downgrading matplotlib to < 3.0 and see if the error still happens?

@shreyasbapat

This comment has been minimized.

Copy link
Member

shreyasbapat commented Oct 2, 2018

I am really sorry! I've updated the Issue!
matplotlib is 3.0.0 in pip

@shreyasbapat

This comment has been minimized.

Copy link
Member

shreyasbapat commented Oct 2, 2018

No success in Matplotlib 2.2.3
I feel the issue has something to do with astropy.units

@Juanlu001

This comment has been minimized.

Copy link
Member

Juanlu001 commented Oct 2, 2018

I confirm I can reproduce.

I launched with IPython, and run %debug just after the failure. The problem is in the line

--> 175         if radius < self._attractor_radius:

because self._attractor_radius is None, for some reason. Should be easy to fix?

@Juanlu001 Juanlu001 added the bug label Oct 2, 2018

@Juanlu001

This comment has been minimized.

Copy link
Member

Juanlu001 commented Oct 2, 2018

We will need tests for this, because I don't know when was this issue introduced. Also, bear in mind that the set_frame method might be revised by the next release, because it should receive a Plane as defined in poliastro.frames or even a proper reference frame.

@shreyasbapat

This comment has been minimized.

Copy link
Member

shreyasbapat commented Oct 2, 2018

because self._attractor_radius is None, for some reason. Should be easy to fix?

Yeah! Surely!

We will need tests for this,

I will write one. Just to check if the radius is not None right?

Also, bear in mind that the set_frame method might be revised by the next release,

Any specific thing to keep in mind?

@Juanlu001

This comment has been minimized.

Copy link
Member

Juanlu001 commented Oct 2, 2018

Rather, to check that set_frame does not miserably fail :) Does it happen only with plot_solar_system? Or perhaps we can have an even simpler test case? Please investigate a bit more.

Regarding the future of set_frame, I don't have specific ideas now (can't devote any time until PyConES is over). Let's fix it for the time being, and then we will see what to do.

@shreyasbapat

This comment has been minimized.

shreyasbapat added a commit to shreyasbapat/poliastro that referenced this issue Oct 2, 2018

shreyasbapat added a commit to shreyasbapat/poliastro that referenced this issue Oct 2, 2018

@wafflebot wafflebot bot added the 2 - In Progress label Oct 2, 2018

shreyasbapat added a commit to shreyasbapat/poliastro that referenced this issue Oct 25, 2018

@wafflebot wafflebot bot removed the 2 - In Progress label Oct 26, 2018

Juanlu001 added a commit to Juanlu001/poliastro that referenced this issue Dec 26, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment