示例#1
0
def load_inputs(cfg: dict) -> Tuple[GeoDataFrame]:
    """
    Loads all of the inputs specified by the `cfg` and returns a tuple of
    :class:`GeoDataFrame` objects, the earthquake catalog and the bins.

    :param cfg:
        Configuration for the evaluations, such as that parsed from the YAML
        config file.
    """
    rupture_gdf = load_ruptures_from_ssm(cfg)
    bin_gdf = make_bin_gdf_from_rupture_gdf(
        rupture_gdf,
        h3_res=cfg["input"]["bins"]["h3_res"],
        min_mag=cfg["input"]["bins"]["mfd_bin_min"],
        max_mag=cfg["input"]["bins"]["mfd_bin_max"],
        bin_width=cfg["input"]["bins"]["mfd_bin_width"],
    )

    logger.info("bin_gdf shape: {}".format(bin_gdf.shape))

    logger.info("rupture_gdf shape: {}".format(rupture_gdf.shape))
    logger.debug("rupture_gdf memory: {} GB".format(
        sum(rupture_gdf.memory_usage(index=True, deep=True)) * 1e-9))

    logger.info("adding ruptures to bins")
    add_ruptures_to_bins(rupture_gdf, bin_gdf)

    if cfg["input"]["subset"]["file"] is not None:
        logger.info("   Subsetting bin_gdf")
        bin_gdf = subset_source(
            bin_gdf,
            subset_file=cfg["input"]["subset"]["file"],
            buffer=cfg["input"]["subset"]["buffer"],
        )

    del rupture_gdf

    logger.debug("bin_gdf memory: {} GB".format(
        sum(bin_gdf.memory_usage(index=True, deep=True)) * 1e-9))

    eq_gdf = load_obs_eq_catalog(cfg)

    logger.info("adding earthquakes to bins")
    add_earthquakes_to_bins(eq_gdf,
                            bin_gdf,
                            h3_res=cfg["input"]["bins"]["h3_res"])

    if "prospective_catalog" in cfg["input"].keys():
        logger.info("adding prospective earthquakes to bins")
        pro_gdf = load_pro_eq_catalog(cfg)
        add_earthquakes_to_bins(
            pro_gdf,
            bin_gdf,
            h3_res=cfg["input"]["bins"]["h3_res"],
            category="prospective",
        )
        return bin_gdf, eq_gdf, pro_gdf

    else:
        return bin_gdf, eq_gdf
示例#2
0
    def setUpClass(self):
        self.test_dir = test_data_dir + "/"

        self.lt, self.weights = process_source_logic_tree(self.test_dir)

        self.rup_dict = rupture_dict_from_logic_tree_dict(self.lt)

        self.rup_list = rupture_list_from_source_list(self.lt["b1"])

        self.rup_gdf = rupture_list_to_gdf(self.rup_list)
        self.bin_gdf = make_bin_gdf_from_rupture_gdf(self.rup_gdf,
                                                     h3_res=3,
                                                     parallel=False)
示例#3
0
 def test_make_bin_gdf_from_rupture_gdf(self):
     bin_df = make_bin_gdf_from_rupture_gdf(self.rup_gdf,
                                            h3_res=3,
                                            parallel=False)
     np.testing.assert_almost_equal(
         bin_df.loc["836860fffffffff"].geometry.area, 1.0966917348958416)