[HN Gopher] Julia and the satellite Amazonia-1 (2020)
___________________________________________________________________
Julia and the satellite Amazonia-1 (2020)
Author : montalbano
Score : 169 points
Date : 2021-03-25 11:22 UTC (11 hours ago)
(HTM) web link (discourse.julialang.org)
(TXT) w3m dump (discourse.julialang.org)
| junippor wrote:
| This post illustrates one of the reasons why I love Julia.
|
| When talking to Python colleagues about Julia one response is
| "well, but I don't really care about performance _that_ much".
|
| The thing about Julia is that you can code without caring about
| performance (and the performance will be Python-like). If later
| on it turns out that you DO care, you CAN optimize it. With
| Python you don't have that option, as in Python "optimizing"
| means using cython/numba over numpy arrays, and all the
| limitations inherent to that approach.
|
| This is obviously good, and I'm not even sure what the trade-off
| is. What am I losing?
| bb1234 wrote:
| You said "The thing about Julia is that you can code without
| caring about performance (and the performance will be Python-
| like)."
|
| This is not my experience. Even if you code without caring
| about performance it is _way faster_ than Python. Also, it is
| _not any harder_ to code in than Python. It is as high level if
| not more.
| oxinabox wrote:
| > This is not my experience. Even if you code without caring
| about performance it is way faster than Python.
|
| It is very usecase dependant. If your Python code is writing
| lots of loops and scalar processing then naive julia code
| will trash it. but if it is basically spending all its time
| in numpy/BLAS routines then they will be comparable. and
| Julia will looks like its not worth it, since compile time
| makes it overall slower etc.
|
| > Also, it is not any harder to code in than Python.
|
| If you already know Python then it is easier to use what you
| know. Furthemore, if you already know Python (or even more so
| Matlab) it can cause some stumbling blocks. Some idiomatic
| code in other languages, (like writing everything as big
| array operations), is unidiomatic in julia (since it causes a
| lot of allocations tht you don't need)
| junippor wrote:
| Yeah, that's often the case but I wanted to make a
| conservative claim.
|
| Two personal examples where Julia turns out to be much much
| faster than Python without me having to do anything but the
| most naive implementation:
|
| - order of 10 float arrays with order of 1_000_000 elements
| each. Broadcasting an element-wise function in Julia or just
| doing a for-loop in Julia is way way faster than a pandas
| operation like col1 * col2 + col3 etc.
|
| - the first time I tried one of Julia's optimizers (I think
| Optim.jl) it took 1ms on my problem. Sci-kit took 200ms.
| That's crazy.
| nonameiguess wrote:
| Python isn't the competition for satellite image processing.
| That is very much a C++ world. The existing code is already so
| absurdly optimized that you're not going to compete on that
| basis. Where you can compete is the code is also absurdly
| complex and it's very hard to find developers who can
| productively use it. If Julia can get close to similar
| performance but be much easier to understand, that could be a
| huge boon.
|
| Someone needs to be a first mover, though. The unfortunate
| thing I've seen in the satellite world is companies think they
| can take Java developers and teach them C++ and the transition
| will be seamless. It definitely isn't, but the basic OO
| concepts and syntax is similar enough that the idea is easy to
| sell. Trying to sell these huge enterprise and government
| systems on a programming language that hasn't even existed for
| a decade won't be easy, in contrast, no matter how simple and
| no matter how performant it is. Somebody is going to need to
| step up and just do it, with or without some huge corporate or
| government sponsor.
| snicker7 wrote:
| > Julia is that you can code without caring about performance
| (and the performance will be Python-like)
|
| Typically unoptimized Julia is comparable to Python glue +
| optimized C (e.g. numpy).
| sremani wrote:
| Amazonia-1 was put in orbit by PSLV launch from SHAR this year
| (2021). The annotation (2020) is wrong.
|
| https://www.space.com/india-launches-amazonia-1-satellite-18...
| montalbano wrote:
| See my comment above. I'm not sure why it was changed but
| hopefully one of the mods can change it back.
| vslira wrote:
| Between this, BNDES (Development Bank) and Bacen (Central Bank,
| its "Fed"), it seems like Brazil's public service is a Julia
| hotspot.
| boibombeiro wrote:
| The Brazilian academics favors open source over commercial
| software (the most well ranked universities in the country are
| free, and many student cant't afford to pay license fee).
|
| So it doesn't come as surprise egresees uses Julia, R over the
| paid counterpart.
| haolez wrote:
| Brazilian institutions used to love FORTRAN and Matlab. Maybe
| Julia was more familiar to their teams somehow.
| elzbardico wrote:
| Not really. julia is niche at the best in Brazil. Python
| largely dominates the scene
| montalbano wrote:
| I also found a press release on the Julia Computing website:
|
| https://juliacomputing.com/case-studies/BrazilNationalinstit...
|
| But the forum link above seems more informative and the software
| architect has answered questions within the thread.
| myth2018 wrote:
| Ronan's blog. Interesting stuff:
|
| https://www.ronanarraes.com/main/
| ChrisRackauckas wrote:
| I'm glad to see some of Ronan's work get a spotlight. He was one
| of the early DifferentialEquations.jl users and discussions with
| him + bug reports really helped guide the SciML project in the
| right direction. He's one of those Julia community members that
| really makes OSS development a fantastic experience. You can
| trace a lot of the 2016-2017 design choices around callbacks to
| helping his satellite control use cases. Now, that satellite is
| up there. It's a really nice and personal example of how this
| "Julia Generation 3" community has grown and matured over the
| last half decade.
| montalbano wrote:
| I didn't put a (2020) in the submission title as the post was
| only created 6 days ago. Did I miss something here? I'm sure it
| was editorialised for a reason but I can't figure it out, sorry
| if I'm being stupid.
| soneca wrote:
| And the post couldn't be older since it has a photo from a
| satellite that was launched this year. My guess it is some
| automated task that got confused because the post is in a
| forum, not a regular blog post with a publishing date.
| themulticaster wrote:
| I just created an account to tell you my guess: The timeline to
| the right of the post shows "Mar 20", for the 20th of March
| (2021). I think some moderator misunderstood that as March of
| 2020 and changed the title.
| 3JPLW wrote:
| As an administrator at Julia's discourse, I'd be really
| curious if this was the reason. Discourse's default "short
| date" format is super problematic. By default, they display
| something from 5 days ago as `Mar 20` and something from a
| year ago as `Mar '20`. We've changed that to have the year+
| old posts display as `Mar 2020`, but maybe we should also
| change the recent display to be something different; maybe
| `20 Mar`? The UI doesn't give us too much space,
| unfortunately.
| neolog wrote:
| > The UI doesn't give us too much space, unfortunately.
|
| I don't see where it's cramped, there's a lot of room on my
| screen.
|
| Another option is "June 20^{th}"
| 3JPLW wrote:
| That same format string is used in multiple places, and
| unfortunately I don't think the text engine they expose
| to us is smart enough to do the ordinal 1st 2nd 3rd
| thing.
|
| Edit: oh, we can do that. Changed experimentally.
| neolog wrote:
| LGTM
| airstrike wrote:
| Off-topic, but I'm always amazed at how massive Sao Paulo is. I
| remember visiting a museum there - I think it was the MASP - and
| there was this sprawling installation of a satellite view of the
| city that you could walk over. I walked, and walked, and walked
| and it felt like I could never reach the edge
| thatcherc wrote:
| SatelliteToolbox.jl[0] (one of the packages developed by the post
| author) is one of my most-used Julia packages! It's great for
| (among many other things) working with TLE orbits and presents a
| really nice interface for converting between all the different
| Earth-fixed and Earth-centered-inertial frames, which is
| generally a huge hassle. Ronan has also been very friendly to PRs
| on Github which is always nice. Awesome to see this mission come
| together!
|
| [0] - https://github.com/JuliaSpace/SatelliteToolbox.jl
| muskox2 wrote:
| Very cool thread, and encouraging to see that they could open-
| source a good bit of the satellite code.
___________________________________________________________________
(page generated 2021-03-25 23:01 UTC)