Hacker News new | past | comments | ask | show | jobs | submit login
Practical Python for Astronomers (python4astronomers.github.io)
122 points by blondie9x on Sept 5, 2015 | hide | past | favorite | 23 comments



Nothing really productive to say to anyone except professional astronomers in the room:

This is a similar tutorial we went through at ESA: http://python4esac.github.io/index.html

This is a more advanced machine learning focused module, go through the "book figures" and example code is given. I also have a collection of slides on the module if anyone is interested: http://www.astroml.org

This is a padova isochrone query tool for python: https://github.com/jonathansick/padova

MCMC library, arguably better than pymc, written by astronomers: https://github.com/dfm/emcee

Lifesaver on how to make fancy plots: http://matplotlib.org/gallery.html

Not python specific, tools of the trade: http://aladin.u-strasbg.fr (star chart with survey data overlays), http://www.star.bris.ac.uk/~mbt/topcat/ (table manipulation and quick visualization for CSV, FITS, VOTable, IPAC, etc.), http://ds9.si.edu/site/Home.html (CCD image visualization), http://iraf.noao.edu (a house of cards build by grad students for grad students where no one really knows how it works but everyone seems to know about)

Please cite these resources if you use them.

Finally, a fun link for grad students: http://astrobites.com


How about the inverse? Practical astronomy tools for python-developers? Just getting into astronomy I'd love some tips on where to look for stuff like this.


What type of things are you interested in doing? There's a pretty wide range of things in astronomy that lend themselves to the use of python (simulation analysis, data calibration, data display, etc.). The astropy[0] effort is creating a general-purpose package to aid in many areas. There are codes to compute how radiation transfers through gas (e.g., powderday[1]), fitting codes to observations of interstellar gas tracers (e.g., pyradexnest[2]), and so on. Many are fairly specialized (the last two, for example) and perhaps not as useful to a casual/amateur astronomer, but things like astropy would be useful for calibrating images from CCD cameras, or computing when things are visible in the sky.

If you reply with more specifics of what you're after, I can try to provide more relevant examples.

[0] http://www.astropy.org/

[1] http://powderday.readthedocs.org/en/latest/

[2] https://github.com/jrka/pyradexnest


Quick Reply: I'm currently studying orbital-mechanics. Starting with something like Celestial Objects then downsizing to small-bodies later on. This has me reading up on Newtonian physics. With a solid understanding there, I'll move onto General Relativity.

My current open question (that may have been answered by this thread) was where can I obtain star-charts? How do I interact with them. Etc.


Hey there! I'm a grad student in my last year and my research is in orbital dynamics. I've recently started getting into the rebound package written by Hanno Rein:

https://github.com/hannorein/rebound

There's some tutorials that come with it. It can also read data from JPL's ephemerides to calculate orbits of various planets and minor bodies in the Solar System. It has a couple of different integrators (some symplectic, some not), but one of them (IAS15) is new and (as far as I know) the best for long-term integrations of Solar-System-like systems.

Also if you're interested in studying the long-term evolution of hierarchical triples, I wrote a Python package to study that:

https://github.com/joe-antognini/kozai

As far as star charts, you can do things like that with AstroPy. If you want the coordinates of stars, look into astropy.vo, and then if you want to plot them, you can do that with some of the functions in astropy.wcs.


I follow privong's suggestion for stellarium for celestial body visualization.

However, if you want precision data as an input to your code, I would make use of NASA JPL's ephemerides system [0]. It is precise and reliable. Another, more pythonic option is pyephem [1], which allows you to "calculate positions of stars and planets" at any given time.

Both options can be easily incorporated with astropy and APLpy, suggested by privong, for calculations and plotting.

[0] http://ssd.jpl.nasa.gov/?ephemerides

[1] https://pypi.python.org/pypi/pyephem/


Thanks, I'll look into this too!


The simplest way forward is to use something like stellarium[0] or xephem[1] to make charts and view/adjust them in real-time. But that involves no python. :)

A more complicated option would be to program one up using various tools in the astropy library. You could retrieve catalogs of objects and plot their positions using the built in coordinate system tools (wcs) with aplpy[2] or matplotlib.

[0] http://www.stellarium.org/

[1] http://www.clearskyinstitute.com/xephem/

[2] https://aplpy.github.io/


I'm not to worried about the toolsets. I just want an amazing community. Thanks! On my next break, I'll dig into all of this!


I haven't used it, but maybe poliastro is what you're looking for? https://poliastro.github.io

Disclaimer: I'm a friend of the author


Tip: you will also want to study structure-preserving numerical integration methods if you want to simulate planetary orbits. The book by Hairer, Wanner and Lubich is good (but not for the faint-of-heart).


Thanks! I'll look into it.


Normally I would rail against "import *" in the code, but under the circumstances ...


Is this an event/meeting coming up? Or is it supposed to be all online. Can't really seem to get much information on "Practical Python for Astronomers" from the site. It may just be me missing something...


the first few links are just mostly references, you need to look a bit deeper. Like: https://python4astronomers.github.io/astropy/fits.html


No, they need to make it a bit clearer. On the surface, it looks like yet another "webinar"- or MOOC-like scheme to impose a realtime schedule on a presentation that has no inherent realtime requirement. (Yes, this is a pet peeve of mine.)

It's even worse when the "Location and time" columns are all "TBD."


On the front page, it says "The content presented here is suitable for self-study by those wishing to learn Python for astronomy or other scientific research applications."

Right below that, it says "The workshop material here was presented in the Spring of 2011 at the Harvard / Smithsonian Center for Astrophysics. A range of about 25 to 50 people participated in the different workshops, which were 1.5 hours in duration. Based on our experience a 2 hour slot would have been more reasonable to allow time for the exercises and discussion."

It sounds like this was a series of workshops that were presented, and the material collected and released as reference for anybody else who wants to take initiative in their own communities.

This brings up a good question, though. What are the reasonable expectations for people who make their reference materials online after they're done with the initial conference talk or workshop, and have moved on to something else?


A thank you for putting up the materials at all when they had no obligation to.


Ah, I see, thanks!


For easy python access to the VSOP87 (and ELP 2000) theory, that is, planetary/moon calculations, i've been impressed with the clean (ANSI C) implementation of this "kepler" library with nice python hooks: http://savannah.nongnu.org/projects/kepler


Working for an astronomy company while in grad school was the first place I got to play with Fortran. It seems like Python is becoming the common language for researchers in a variety of fields -- ML, etc.

I still have the Fortran Coloring Book around somewhere.


According to a recent study on the current usage of programming languages in astronomy -http://arxiv.org/abs/1507.03989 - Fortran, quite popular in the old days, is still used by a quarter of scientists in the field. Python has been growing very fast in the last five years, eating away at the IDL share of astronomers.


I'm starting my first Fortran (90/95) course tomorrow as part of my studies in astronomy. Having only used python and javascript before, I'm excited and terrified at the same time. The syntax just seems really different compared to those two languages.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: