docs: def combine_mean_curves(calc_big, calc_small):
      """
      Combine the hazard curves coming from two different calculations.
      The result will be the hazard curves of calc_big, updated on the sites
      in common with calc_small with the PoEs of calc_small. For instance:
      calc_big = USA, calc_small = California
      """
      dstore_big = datastore.read(calc_big)
      dstore_small = datastore.read(calc_small)
      sitecol_big = dstore_big['sitecol']
      sitecol_small = dstore_small['sitecol']
      site_id_big = {(lon, lat): sid for sid, lon, lat in zip(
          sitecol_big.sids, sitecol_big.lons, sitecol_big.lats)}
      site_id_small = {(lon, lat): sid for sid, lon, lat in zip(
          sitecol_small.sids, sitecol_small.lons, sitecol_small.lats)}
      common = set(site_id_big) & set(site_id_small)
      if not common:
          raise RuntimeError('There are no common sites between calculation '
                             '%d and %d' % (calc_big, calc_small))
      sids_small = [site_id_small[lonlat] for lonlat in common]
      pmap_big = PmapGetter(dstore_big).get_mean()  # USA
      pmap_small = PmapGetter(dstore_big, sids=sids_small).get_mean()  # Cal
      for lonlat in common:
          pmap_big[site_id_big[lonlat]] |= pmap_small.get(
              site_id_small[lonlat], 0)
      out = 'combine_%d_%d.hdf5' % (calc_big, calc_small)
      with hdf5.File(out, 'w') as h5:
          h5['hcurves/mean'] = pmap_big
          h5['oqparam'] = dstore_big['oqparam']
          h5['sitecol'] = dstore_big['sitecol']
      print('Generated %s' % out)