Python script to create a cloud map for xplanet using satellite images from the Dundee Satellite Receiving Station, Dundee University, UK. This script can also be installed by pip from pypi.
xplanet can use a cloud map to make the earth look more pretty.
There is a free service which create one such cloud map per day. Due to a temporary unavailability of that service this script create_map was developed to automatically download the necessary geostationary images from the Dundee Satellite Receiving Station, Dundee University, UK. To use this service you need an account there (which is free). Also a new cloud map can be created every three hours.
Set your login information in the configuration file (default name for UNIX-like systems: $HOME/.CreateCloudMap/CreateCloudMap.ini
, for Windows: %HOME%\.CreateCloudMap\CreateCloudMap.ini
):
[Download] username = user password = secret tempdir = images # Use one of the following for resolution: low, medium, high resolution = medium purge = false [xplanet] destinationdir = xplanet/images destinationfile = clouds_2048.jpg width = 2048 height = 1024 [processing] nprocs = 1 # use either pyresample or cartopy projection = pyresample
If the configuration file already exists, a new version is copied to CreateCloudMap.ini.new
to not overwrite the login data.
The old config file should work after an update, because default values are used for
newly introduced options.
tempdir
specifies the directory where the downloaded images (and if enabled by the command line
switch --debug
or -d
) intermediate debug images are stored. destinationdir
specifies the directory where
the output destinationfile
is saved.
resolution
can be set to low
, medium
or high
to determine the resolution
of the downloaded satellite images.
If purge
is set to true old satellite images will be deleted which are not
used to draw the current cloud map.
width
and height
set the dimensions of the cloud map in destinationfile
.
nprocs
specifies the number of processors to be used for the processing of the
satellite images. If this number is larger than 1 the multiprocessing library
will be used to create separate processes communicating sending back their
results by queues.
projection
specifies the Python library used for projecting the geostationary
images onto a flat map. Possible values are pyresample
and cartopy
.
pyresample
is the standard value and this library is set as dependency, so
it is installed during the installation of CreateCloudMap
(if pip is used to
install it). If cartopy
is used, this library must be installed manually.
cartopy
is (currently much) slower than pyresample
.
To see all command line options of the script use --help
:
$ create_map --help usage: create_map [-h] [-d] [-c FILE] [-m MAX_AGE] [-f] optional arguments: -h, --help show this help message and exit -d, --debug store intermediate results -c FILE, --conf_file FILE Specify config file -m MAX_AGE, --max_age MAX_AGE Maximal age of satellite images to download -f, --force Force to recreate cloud map
To automatically install cartopy
use the following command line for pip:
pip install CreateCloudMap[cartopy]
For the debug output to work with the pyresample
projection the
libraries matplotlib and basemap have to be installed. This can be done either
manually or by giving the extra requirement option [debug_pyresample]
when using pip:
pip install CreateCloudMap[debug_pyresample]
For the debug output to work with the cartopy
projection the
library matplotlib is necessary. It can be automatically installed by using
pip:
pip install CreateCloudMap[cartopy,debug_cartopy]
(So if no extra dependency is given the pyresample library will be installed (if it has not been already installed) and no debug output is possible)
A nice description of the concepts forming the basis of this program can be found at this blog post.