This is the revision from this version
The exisiting script worked perfectly on the small area of interest by reads all rasters into memory and then processes them. This can be very memory-intensive if we're dealing with large rasters (like global coverage).
Instead of loading all rasters into memory, we can process them one-by-one. This revision script now processes one raster at a time, updating the max value and its date, which should be more memory-efficient. We've added filename parsing to determine the date and then calculate the Julian day.
The script will also automatically detect the lower left point coordinates from the first raster in the directory and use them for the output rasters.
As not everyboody has ArcGIS license for arcpy, so I decided to create non-arcpy solution too.