Small things can make you smile when you have the Aha! moment. It seems that these few days of 7li7w are starting to have real effects in the way I think when programming.
Today, I was faced to a simple but annoying problem. I had about 60 Formosat 2 acquisitions that I needed to use. These images have been pre-processed (thank Olivier!) and, because of historical reasons they are presented like this:
Sudouest_20060206_MS_fmsat_ortho_surf_8m.B1 Sudouest_20060206_MS_fmsat_ortho_surf_8m.B2 Sudouest_20060206_MS_fmsat_ortho_surf_8m.B3 Sudouest_20060206_MS_fmsat_ortho_surf_8m.B4 Sudouest_20060206_MS_fmsat_ortho_surf_8m.hdr
That is, a single ENVI header file and the 4 bands in one file each. And the same thing for every single acquisition date.
I wanted to have the list of all the acquisition dates (the
20060206 above). Since this was not a one shot operation, I wanted something a little bit more generic than opening the directory containing the images in an Emacs Dired buffer and copying and pasting the dates, so I have used Python.
The thing is solved in a single line of code:
dates = [fil.split('_') for fil in os.listdir(imageDir) if(fil.split('.')[-1]=="hdr")]
I use a list comprehension, where for each file in the
imageDir directory (
os.listdir), if the extension is
hdr I keep the second chunk of the name of the file when
_ is used as a separator.