def _point_to_nhlib(src, mesh_spacing, bin_width): """Convert a NRML point source to the NHLib equivalent. See :mod:`nrml.models` and :mod:`nhlib.source`. :param src: :class:`nrml.models.PointSource` instance. :param float mesh_spacing: Rupture mesh spacing, in km. :param float bin_width: Truncated Gutenberg-Richter MFD (Magnitude Frequency Distribution) binwidth. :returns: The NHLib representation of the input source. """ shapely_pt = wkt.loads(src.geometry.wkt) mf_dist = _mfd_to_nhlib(src.mfd, bin_width) # nodal plane distribution: npd = pmf.PMF( [(x.probability, geo.NodalPlane(strike=x.strike, dip=x.dip, rake=x.rake)) for x in src.nodal_plane_dist] ) # hypocentral depth distribution: hd = pmf.PMF([(x.probability, x.depth) for x in src.hypo_depth_dist]) point = mtkPointSource( source_id=src.id, name=src.name, tectonic_region_type=src.trt, mfd=mf_dist, rupture_mesh_spacing=mesh_spacing, magnitude_scaling_relationship=_SCALE_REL_MAP[src.mag_scale_rel](), rupture_aspect_ratio=src.rupt_aspect_ratio, upper_seismogenic_depth=src.geometry.upper_seismo_depth, lower_seismogenic_depth=src.geometry.lower_seismo_depth, location=geo.Point(shapely_pt.x, shapely_pt.y), nodal_plane_distribution=npd, hypocenter_distribution=hd ) return point
def _point_to_mtk(src): """Convert a NRML point source to the MTK Source Equivalent. See :mod:`nrml.models` and :mod:`nhlib.source`. :param src: :class:`nrml.models.PointSource` instance. """ # Loads point geometry shapely_pt = wkt.loads(src.geometry.wkt) geometry_input = np.array([shapely_pt.x, shapely_pt.y]) point = mtkPointSource( src.id, src.name, src.trt, src.rupt_aspect_ratio, geometry_input, upper_depth = src.geometry.upper_seismo_depth, lower_depth=src.geometry.lower_seismo_depth) return point
def _point_to_nhlib(src) """Convert a NRML point source to the MTK Source Equivalent. See :mod:`nrml.models` and :mod:`nhlib.source`. :param src: :class:`nrml.models.PointSource` instance. """ # Loads point geometry shapely_pt = wkt.loads(src.geometry.wkt) geometry_input = np.array([shapely_pt.x, shapely_pt.y]) point = mtkPointSource( src.id, src.name, src.trt, src.rupt_aspect_ratio, geometry_input, upper_depth = src.geometry.upper_seismo_depth, lower_depth=src.geometry.lower_seismo_depth) return point def _area_to_nhlib #~ def _point_to_nhlib(src, mesh_spacing, bin_width): #~ """Convert a NRML point source to the NHLib equivalent. #~ See :mod:`nrml.models` and :mod:`nhlib.source`. #~ :param src: #~ :class:`nrml.models.PointSource` instance.