Lunar mapping with 6-meter wavelength

The animation sweeps from the southern hemisphere to the northern hemisphere. The equatorial region is poorly mapped, because one pixel of the range-Doppler image maps to a huge area on the Moon (this is apparent from the view above or below the Moon, which is nearly identical to the range-Doppler map of the Moon). The polar regions are mapped best.

One of the efforts we are working on is mapping the Moon with 6-meter wavelength. This is done using the Jicamarca Radio Observatory 6-meter wavelength radar. The radar is useful for a number of reasons. The radar is huge. The dimensions of the antenna is 300 x 300 meters. It's got 9216 dipole antennas chained as groups of 12 colinear coaxial antennas. It can transmit up to 4 MW of power towards the Moon. It can be split into smaller sections for interferometry on receive. The antenna is fully polarimetric: you can transmit and receive any combination of two linear orthogonal polarizations.

The most important reason for using Jicamarca is frequency. The low frequency of 49.92 MHz allows the radio wave to penetrate very deep into the subsurface of the Moon. We estimate that in highland regions, the wave can penetrate up to 1 km beneath the surface. The low frequency does come with an associated cost. It is not possible to make a very high resolution map of the Moon. We can only observe 10-15 minute passes, and the Moon only has a Doppler width of about 1 Hz at this frequency. The low frequency is also severely affected by ionospheric radio propagation, which modifies the polarization state of the wave, and contains phase noise due to small fluctuations in ionospheric electron density.

This summer, we published our first paper on the topic in the journal Icarus containing first results. Now we are planning to write a follow up study that goes more in depth. In order to compare our results with other observations of the Moon, we have been working towards projecting our range-Doppler map into lunar coordinates. This is now finally done, and we can now project our observations into any projection we want! The gif animation above shows the Moon projected into orthographic projection using Basemap and Matplotlib, which has a nifty warpimage function.

The key step towards projecting the measurements into arbitrary projections with Basemap is to make a cylindrically projected 2d image that has longitude (-180 to 180 degrees) on the x-axis and latitude (-90 to 90 degrees) on the y-axis. This image has to have a 2:1 ratio of pixels for the warpimage function to work correctly. This is what our image looks like:
Depolarized radar return form the Moon in dB scale at 6-meter wavelength in cylindrical projection. Longitude (-180 to 180 degrees) in the x-axis and latitude (-90 to 90 degrees) on the y-axis. Obviously, no radar return is obtained from the far side of the Moon that is in the radar shadow. The Doppler equator region is poorly mapped, because a single range-Doppler bin maps into a very large geographic area. Also, interferometric separation of the north and south hemispheres also falls apart in the Doppler equator region.
The animation shows the main characteristics of the map quite nicely. While the views from above and below look good, the equatorial region is very smeared and blobby. This is due to the fact that our measurement is fundamentally a range-Doppler map of the Moon. Regions near the equator map into a very large area on the Moon. Also, it is increasinly more difficult to separate the northern and southern hemisphere from one another using interferometry, because the angular separation near the Doppler equator is vanishingly small. Normally, one would simply not show the region near the equator, but we've opted to do this, to show that it is indeed crap.

Here's some code, which shows how to use basemap to project an image in cylindrical coordinates into any projection supported by Basemap.


fig = plt.figure()
fig.patch.set_facecolor('black')
b = Basemap(projection='ortho', lat_0 = lat_0, lon_0 = lon_0, 
            resolution = 'l', area_thresh = 1000.)
# plot image with cylindrical projection onto basemap scene 
b.warpimage(image=compf)
# draw the edge of the map 
b.drawmapboundary(color="white")
# draw lat/lon grid lines every 30 degrees.
b.drawmeridians(np.arange(0, 360, 30),color="black")
b.drawparallels(np.arange(-90, 90, 30),color="black")

plt.title("JRO 6-m depolarized return",color="white")
print(ofname)
# ensure that black color is used for the background
plt.savefig(ofname,facecolor=fig.get_facecolor())
plt.close()



Comments