def test_write_map(self): d = Domain(4326, "-te 25 70 35 72 -ts 500 500") tmpfilename = os.path.join(ntd.tmp_data_path, 'domain_write_map.png') d.write_map(tmpfilename) self.assertTrue(os.path.exists(tmpfilename)) i = Image.open(tmpfilename) i.verify() self.assertEqual(i.info['dpi'], (50, 50))
def test_write_map_labels(self): d = Domain(4326, "-te 25 70 35 72 -ts 500 500") tmpfilename = os.path.join(ntd.tmp_data_path, 'domain_write_map_labels.png') d.write_map(tmpfilename, merLabels=[False, False, False, True], parLabels=[True, False, False, False]) self.assertTrue(os.path.exists(tmpfilename)) i = Image.open(tmpfilename) i.verify()
A Domain object describes all attributes of geographical reference of a raster: width and height, pixel size, relation between pixel/line coordinates and geographical coordinates, type of data projection (e.g. geographical or stereographic) ''' # Create Domain object. It describes the desired grid of reprojected image: # projection, resolution, size, etc. In this case it is geographic projection; # -10 - 30 E, 50 - 70 W; 2000 x 2000 pixels d = Domain("+proj=latlong +datum=WGS84 +ellps=WGS84 +no_defs", "-te 25 70 35 72 -ts 2000 2000") d = Domain(4326, "-te 25 70 35 72 -ts 2000 2000") d.write_map(oFileName + '01_latlong_map.png') print 'Latlong Domain:', d, '\n' # get shape print 'shape:', d.shape(), '\n' # Generate two vectors with values of lat/lon for the border of domain lonVec, latVec = d.get_border() print 'lonVec :', lonVec, '\n' print 'latVec :', latVec, '\n' # Get upwards azimuth direction of domain. bearing_center = d.upwards_azimuth_direction() print 'bearing_center :', bearing_center, '\n' # Create domain with stereographic projection
# make KML file with image borders (to be opened in Googe Earth) n.write_kml(kmlFileName=oFileName + '_preview.kml') # make image with map of the file location n.write_map(oFileName + '_map.png') # Make image reprojected onto map of Northern Europe # 1. Create Domain object. It describes the desired grid of reprojected image: # projection, resolution, size, etc. In this case it is geographic projection; # -10 - 30 E, 50 - 70 W; 2000 x 2000 pixels # 2. Reproject the Nansat object # 3. Make simple image dLatlong = Domain("+proj=latlong +datum=WGS84 +ellps=WGS84 +no_defs", "-te 25 70 35 72 -ts 2000 2000") dLatlong.write_map(oFileName + '_latlong_map.png') print 'Latlong Domain:', dLatlong n.reproject(dLatlong) n.write_figure(oFileName + '_pro_latlon.png') # Reprojected image into stereographic projection # 1. Cancel previous reprojection # 2. Get corners of the image # 3. Create Domain with stereographic projection, corner coordinates and resolution 1000m # 4. Reproject with cubic interpolation # 5. Write image n.reproject() # 1. lons, lats = n.get_corners() # 2. meanLon = sum(lons, 0.0) / 4. meanLat = sum(lats, 0.0) / 4. srsString = "+proj=stere +lon_0=%f +lat_0=%f +k=1 +ellps=WGS84 +datum=WGS84 +no_defs" % (meanLon, meanLat)