Show HN: A simple CLI tool to generate satellite images of a location(github.com)
github.com
Show HN: A simple CLI tool to generate satellite images of a location
https://github.com/plant99/felicette
68 comments
Right, thanks a lot for your suggestions.
Points 2, 3 are in the to-do list. Will definitely add 1, 4.
Points 2, 3 are in the to-do list. Will definitely add 1, 4.
A couple of comments...
> TL;DR: Generate JPEG earth imagery from a location's name/coordinates
It downloads imagery. At first I thought this was a project to simulate satellite imagery from OSM data or something.
> This tool is for a sentient being who wants to view high-res satellite imagery of earth
Landsat is what 30 meters-per-pixel? That's not high-resolution.
> TL;DR: Generate JPEG earth imagery from a location's name/coordinates
It downloads imagery. At first I thought this was a project to simulate satellite imagery from OSM data or something.
> This tool is for a sentient being who wants to view high-res satellite imagery of earth
Landsat is what 30 meters-per-pixel? That's not high-resolution.
> It downloads imagery. At first I thought this was a project to simulate satellite imagery from OSM data or something.
Will update the README, thanks for pointing it out.
> Landsat is what 30 meters-per-pixel? That's not high-resolution.
With the panchromatic band, we can get 15m resolution. But you're right with the fact that one can get images with better resolution on any commercial platforms.
But even OpenMapTiles renders at 15m, I feel. Still have to look into some docs though, I'm curious.
Will update the README, thanks for pointing it out.
> Landsat is what 30 meters-per-pixel? That's not high-resolution.
With the panchromatic band, we can get 15m resolution. But you're right with the fact that one can get images with better resolution on any commercial platforms.
But even OpenMapTiles renders at 15m, I feel. Still have to look into some docs though, I'm curious.
Same
I give it a coordinate and it give me a picture of the French and UK sea towns. That is quite a low resolution I guess.
Are there any example images?
Felicette is a dead-simple CLI tool which searches, downloads, generates, and visualizes satellite imagery in the form of RGB jpegs, taking inputs in the form of location's name or coordinates.
It also has options to visualize CIR vegetation data.
Neat project! The example photos in Drive are a bit wonky on mobile and only one of the files is accessible. Consider adding a few example photos in the readme. What’s the licensing and usage rights of the produced images?
Right, thanks for the feedback. They are 16bits JPEGs, thus the large file sizes.
And the images are generated in your system with the data from a public source.
Not sure who owns the copyright to them. ^^
And the images are generated in your system with the data from a public source.
Not sure who owns the copyright to them. ^^
App seems to be using Landsat data. There should be no restrictions on its use.
https://www.usgs.gov/faqs/are-there-any-restrictions-use-or-...
https://www.usgs.gov/faqs/are-there-any-restrictions-use-or-...
[deleted]
Seems nice but sends you to dependency hell when you try to install on Ubuntu.
On 18.04, it can't find the correct openvc On 19.04, same things On 20.04, the repo doesn't include config for 20.04
Would love to try it, but ...
On 18.04, it can't find the correct openvc On 19.04, same things On 20.04, the repo doesn't include config for 20.04
Would love to try it, but ...
You can try the Docker build I just made if you want: https://news.ycombinator.com/item?id=23951167
Very weird, can you raise an issue with some logs, I'd love to take a look at them and see what went wrong. Thanks for looking into the tool.
Wont have time to do this, nor do I have a github account anymore since that once welcoming place has been assimilated by the borg.
However, here's a hint: try to install a minimal ubuntu server on a VM and install/run your package.
You'll quickly discover the real transitive dependency set of your software.
However, here's a hint: try to install a minimal ubuntu server on a VM and install/run your package.
You'll quickly discover the real transitive dependency set of your software.
Update your pip and you should be fine. Or modify the package requirements. It worked even with older versions for me.
[deleted]
is it live? Like can a get a pic of a place made at day light in the last 24 hours?
Hi, not yet. It searches for all Landsat 8 images on AWS with lowest cloud cover.
But even at it's full potential, Landsat 8 gives a temporal resolution of 14 days for a location, iirc.
But even at it's full potential, Landsat 8 gives a temporal resolution of 14 days for a location, iirc.
For a little more effort you could "interleave" the Sentinel 2 images as well, which are of a similar resolution and also have a simple access API.
Oh yes, there are plans to integrate Sentinel images as well, but the data fetch layer has to be worked on to handle auth/AWS config to fetch data from buckets.
So released with Landsat 8 first, and I think sentinel 2 has better resolution, up to 10m, if I am not wrong. So it'd be a lot better if Sentinel 2 integration were in-place.
So released with Landsat 8 first, and I think sentinel 2 has better resolution, up to 10m, if I am not wrong. So it'd be a lot better if Sentinel 2 integration were in-place.
There's also this, if you are interested in downloading timeseries as a whole: https://github.com/cmla/tsd
It supports sentinel 1/2/5p, landsat 8 and a few other satellites if you have the required API access identifiers. The idea is to fetch data not from buckets but from the actual sources, so the underlying philosophy is a bit different.
It supports sentinel 1/2/5p, landsat 8 and a few other satellites if you have the required API access identifiers. The idea is to fetch data not from buckets but from the actual sources, so the underlying philosophy is a bit different.
This is a gold mine, thanks for sharing!
Landsat 8 has a 16 day repeat cycle
Yess, thanks for the correction.
"The satellite has a 16-day repeat cycle with an equatorial crossing time: 10:00 a.m. +/- 15 minutes." from USGS website.
"The satellite has a 16-day repeat cycle with an equatorial crossing time: 10:00 a.m. +/- 15 minutes." from USGS website.
Looking at the code, it appears to be a nice front end to sat-search https://github.com/sat-utils/sat-search
[deleted]
Where the data are coming from? Can't find a word about it in README.
Oops, will add a section soon. But for now, it gets the data from a public Landsat 8 AWS storage.
https://registry.opendata.aws/landsat-8/
https://registry.opendata.aws/landsat-8/
It uses Landsat, as far as I can gather from the code.
This is neat!
I’ve built something similar, although my tool can pull its data from any service that supports tile indexing via the Web Mercator Transform (e.g. Google Maps, OSM, basically every online mapping service):
https://github.com/doersino/aerialbot
Its original purpose is the creation of Twitter bots like the ones liked below, but it works well for grabbing detailed satellite maps of arbitrary areas.
https://twitter.com/placesfromorbit
https://twitter.com/americasquared
https://twitter.com/baekmanpyeong
https://twitter.com/nihonmusuukei
I’ve built something similar, although my tool can pull its data from any service that supports tile indexing via the Web Mercator Transform (e.g. Google Maps, OSM, basically every online mapping service):
https://github.com/doersino/aerialbot
Its original purpose is the creation of Twitter bots like the ones liked below, but it works well for grabbing detailed satellite maps of arbitrary areas.
https://twitter.com/placesfromorbit
https://twitter.com/americasquared
https://twitter.com/baekmanpyeong
https://twitter.com/nihonmusuukei
Love this, and the bots. I had one running myself for a while, but I missed the part that grabbed the satellite imagery, do I did that in bulk ahead and had a folder of them.
https://twitter.com/FiveEarthColors
https://twitter.com/FiveEarthColors
This is awesome!
I'd go through the code as well in a bit, but the twitter bots are really amazing.
Felicette was the first cat launched into space on 18 October 1963 as part of the French Space Program
https://en.wikipedia.org/wiki/F%C3%A9licette
Definition of felicette
https://github.com/plant99/felicette
https://en.wikipedia.org/wiki/F%C3%A9licette
Definition of felicette
https://github.com/plant99/felicette
That is included in the readme
Looks like a great tool, but its dependencies are sufficiently complex to warrant a Dockerfile. This way it would be very clear what the dependencies are independent of how the host system is configured.
I just pushed a Docker build here:
https://hub.docker.com/r/milhouse1337/felicette
You can use it like this:
You can use it like this:
docker run -it -v "$PWD"/felicette-data:/root/felicette-data milhouse1337/felicette felicette -l "Montreal"
That's a very cool project to play with! Thank you @plant99 for this.Wow, that just makes it a lot simpler for people to test/use.
Could you please share your GitHub username, so I can attribute with a link to the docker image in the README?
Thanks for the feedback, I agree with you on this. I'll add this to the to-do list.
[pipx](https://pipxproject.github.io/pipx/) is a nice way to download python CLI apps in a separate contained virtual env. But I couldn't install your app with it:
https://pastebin.com/syUPRDCp
https://pastebin.com/syUPRDCp
Oh from the logs it looks like `numpy` wasn't installed. Please install GDAL=={ogrinfo --version}, and numpy before installing felicette, and that'd most probably solve it.
Off-topic but slightly related, so I'll just post it here in comments.
I've recently discovered pretty cool telnet server. Map in telnet: telnet mapscii.me
I've recently discovered pretty cool telnet server. Map in telnet: telnet mapscii.me
That is really neat, thanks for the share. I am amazed at how much detail they managed to include as you zoom in.
That was super cool! They really get all the details.
At first I couldn't figure out how to zoom in. I pressed all they keys. Then I accidentally moved the mouse over the window and it zoomed in.
So my first thought was, "how the heck do they capture the mouse in the terminal!".
Then I exited out of it by killing telnet, and noticed that my terminal was still capturing my mouse input! Just moving the mouse over the terminal put ASCII codes on the command line.
What is this sorcery?
At first I couldn't figure out how to zoom in. I pressed all they keys. Then I accidentally moved the mouse over the window and it zoomed in.
So my first thought was, "how the heck do they capture the mouse in the terminal!".
Then I exited out of it by killing telnet, and noticed that my terminal was still capturing my mouse input! Just moving the mouse over the terminal put ASCII codes on the command line.
What is this sorcery?
https://imgur.com/a/dKc2OlG - The example images for those who don't have want to download a 40mb image or don't use google drive
On a tangent, but any suggestions for a tool to stitch up drone aerial imagery and use it as a map?
Preferably on the phone/tablet.
Preferably on the phone/tablet.
Um, don't know of a tool to process aerial imagery using phone/tablet.
But I'm sure you're aware of https://qgis.org/en/site/. Some of my friends used this to analyze vegetation using drone imagery.
But I'm sure you're aware of https://qgis.org/en/site/. Some of my friends used this to analyze vegetation using drone imagery.
https://www.opendronemap.org/
Works quite well. Input images must have geo data in the exif metadata like longitude, latitude, FOV, camera pitch (most drones e.g. Autel and DJI drones will include this). You need to set it up on a server, then it's a web app which you could access from a phone/tablet but it involves uploading the images so it probably won't work well like that.
Works quite well. Input images must have geo data in the exif metadata like longitude, latitude, FOV, camera pitch (most drones e.g. Autel and DJI drones will include this). You need to set it up on a server, then it's a web app which you could access from a phone/tablet but it involves uploading the images so it probably won't work well like that.
Sounds like the perfect tool for a spy/hacker/csi TV show.
Interesting.
Take quite some time to install. And some images are great like `felicette -l "New York" Some totally blank (real time and dark) felicette -l "Hong Kong" Some not sure as a bit random like those of Three Gorges Dam using ``` felicette -c 109.5568 31.0390 felicette -c 111.003761 30.823748 felicette -c 110.25 30.95 ``` One has coloured and the other not sure.
I guess this is part of being satellite images?
Take quite some time to install. And some images are great like `felicette -l "New York" Some totally blank (real time and dark) felicette -l "Hong Kong" Some not sure as a bit random like those of Three Gorges Dam using ``` felicette -c 109.5568 31.0390 felicette -c 111.003761 30.823748 felicette -c 110.25 30.95 ``` One has coloured and the other not sure.
I guess this is part of being satellite images?
Hmm. Weird, maybe faulty data for some row/path(s).
I'm checking on this, thanks for reporting this. Meanwhile, could you please raise this as an issue on the repository?
I'm checking on this, thanks for reporting this. Meanwhile, could you please raise this as an issue on the repository?
I'm used to writing latitude first when writing coordinates so I couldn't get the tool to find any images for a while. Other than that neat tool
Oh yes haha, I feel you. I'm using some amazing libraries as dependencies, created by 'Mapbox'. Now you know why it's (lon, lat) ^^
And thanks for checking it out!
And thanks for checking it out!
- Allow farbfeld output (to stdout)
- Allow specifying your own assignment of bands
- Allow to skip the colour adjustment if you want to do that separately
- Ensure it works correctly with a non-Unicode locale