<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_skydir_ltcube(self, skydir, tab_sc, tab_gti, zmax):
 """Create a new livetime cube by scaling this one by the observing profile ratio in the direction ``skydir``. This method can be used to generate an approximate livetime cube that is accurate in the vicinity of ``skydir``. Parameters skydir : `~astropy.coordinates.SkyCoord` tab_sc : `~astropy.table.Table` Spacecraft (FT2) table. tab_gti : `~astropy.table.Table` Table of GTIs. zmax : float Zenith angle cut. """


        skydir = SkyCoord(np.array([skydir.ra.deg]),
                          np.array([skydir.dec.deg]), unit='deg')

        lt, lt_wt = fill_livetime_hist(skydir, tab_sc, tab_gti, zmax,
                                       self.costh_edges)

        ipix = self.hpx.skydir_to_pixel(skydir)

        lt_scale = np.ones_like(lt)
        lt_wt_scale = np.ones_like(lt_wt)
        m = self.data[:, ipix] > 0.0

        lt_scale[m] = lt[m] / self.data[:, ipix][m]
        lt_wt_scale[m] = lt_wt[m] / self._data_wt[:, ipix][m]
        data = self.data * lt_scale
        data_wt = self._data_wt * lt_wt_scale
        return LTCube(data, copy.deepcopy(self.hpx), self.costh_edges,
                      # tstart=np.min(tab_gti_t0),
                      # tstop=np.max(tab_gti_t1),
                      zmax=zmax, data_wt=data_wt)