Draw a profile between a point (lon0,lat0) and (lon1,lat1).

        Args:
            coordinates: Tupples which list the different desired
                profiles.

                Each profil has to be defined as a tupple which follows
                (lon0,lon1,lat0,lat1) with (lon0,lat0) the first point
                coordintes and (lon1,lat1) the second point
                coordinates. Both in degree.
            num_points (Optional[int]): Number of points to use
                in the interpolation process. Defaults to 100.
            save (Optional[bool]): Weither or not to save the image.
                Defaults to False.
            name (Optional[str]): Absolut path to save the resulting
                image. Default to 'BaseProfile.png' in the working
                directory.

        Example:
            Here is an example for a region located (10E,10N) 20 km
            in diameter with three different profiles:

                - One North-South
                - One East-West
                - One inclined

            >>> Region = Area(10,10,20)
            >>> midlon = (Region.window[0]+Region.window[1])/2.0
            >>> midlat = (Region.window[2]+Region.window[3])/2.0
            >>> profile1 = (midlon,midlon,Region.window[2],Region.window[3])
            >>> profile2 = (Region.window[0],Region.window[1],midlat,midlat)
            >>> Region.draw_profile((profile1,profile2,Region.window,))

        Warning:
            If only one profile is given, ``coordinates = (profile1,)``.
            If more than one is given, use ``coordinates = (profile1,profile2,profile3,)``

            IF YOU DECIDE TO CHANGE THE PATH, YOU HAVE TO WRITE
            region.draw_profile(
                (profile1,profile2,region.window,), save = True, name = newpath)

            FOR SOME REASON, USING ONLY
            region.draw_profile(
                (profile1,profile2,region.window,), True, newpath)
            IS NOT WORKING

def draw_profile(self, coordinates, num_points=500, save=False,
                     name='BaseProfile.png'):
        ''' Draw a profile between a point (lon0,lat0) and (lon1,lat1).

        Args:
            coordinates: Tupples which list the different desired
                profiles.

                Each profil has to be defined as a tupple which follows
                (lon0,lon1,lat0,lat1) with (lon0,lat0) the first point
                coordintes and (lon1,lat1) the second point
                coordinates. Both in degree.
            num_points (Optional[int]): Number of points to use
                in the interpolation process. Defaults to 100.
            save (Optional[bool]): Weither or not to save the image.
                Defaults to False.
            name (Optional[str]): Absolut path to save the resulting
                image. Default to 'BaseProfile.png' in the working
                directory.

        Example:
            Here is an example for a region located (10E,10N) 20 km
            in diameter with three different profiles:

                - One North-South
                - One East-West
                - One inclined

            >>> Region = Area(10,10,20)
            >>> midlon = (Region.window[0]+Region.window[1])/2.0
            >>> midlat = (Region.window[2]+Region.window[3])/2.0
            >>> profile1 = (midlon,midlon,Region.window[2],Region.window[3])
            >>> profile2 = (Region.window[0],Region.window[1],midlat,midlat)
            >>> Region.draw_profile((profile1,profile2,Region.window,))

        Warning:
            If only one profile is given, ``coordinates = (profile1,)``.
            If more than one is given, use ``coordinates = (profile1,profile2,profile3,)``

            IF YOU DECIDE TO CHANGE THE PATH, YOU HAVE TO WRITE
            region.draw_profile(
                (profile1,profile2,region.window,), save = True, name = newpath)

            FOR SOME REASON, USING ONLY
            region.draw_profile(
                (profile1,profile2,region.window,), True, newpath)
            IS NOT WORKING

        '''

        fig = plt.figure(figsize=(27, len(coordinates) * 8))
        gs = gridspec.GridSpec(len(coordinates), 4)

        if len(coordinates) == 4:
            assert type(coordinates[0]) == tuple,\
                "If only one tupple is given,\n\
                the correct syntax is (tuple,) !! Not (tuple) ;)"

        for i, coordinate in enumerate(coordinates):

            ax1 = plt.subplot(gs[i, :2])
            ax2 = plt.subplot(gs[i, 2:])

            # Image unit
            lon_m, lon_M, lat_m, lat_M = self.window
            m = Basemap(llcrnrlon=lon_m, llcrnrlat=lat_m, urcrnrlon=lon_M, urcrnrlat=lat_M,
                        resolution='i', projection='laea', rsphere=1734400, lat_0=self.lat0, lon_0=self.lon0)
            X, Y, Z = self.get_arrays('lola')
            X, Y = m(X, Y)
            CS = m.pcolormesh(X, Y, Z, cmap='gist_earth',
                              alpha=1, ax=ax1, zorder=1)
            self._format_coordinate(ax1, m)

            lon1, lon0, lat1, lat0 = coordinate
            lon0, lat0 = m(lon0, lat0)
            lon1, lat1 = m(lon1, lat1)
            ax1.plot([lon1, lon0], [lat1, lat0], 'ro-')

            # Profile
            print(coordinate)
            z_interpolated = self.get_profile('lola', coordinate, num_points)
            ax2.plot(z_interpolated, lw=2, marker='o')
            ax2.set_ylabel('Topographic profile (m)', fontsize=24)
            ax2.tick_params(labelsize=18)

        if save == True:
            fig.savefig(name)