LFRic Orography (Projected)

On this page

LFRic Orography (Projected)#

This example demonstrates how to render a projected warped unstructured cubed-sphere mesh.

📋 まとめ#

Uses an unstructured Met Office LFRic C48 cubed-sphere mesh of surface altitude data.

The mesh contains quad cells and is constructed from CF UGRID unstructured cell points and connectivity.

The mesh is transformed onto an Equidistant Cylindrical (Plate Carrée) projection.

スカラー標高値はメッシュのノード/ポイントに配置されるため、レンダリングされた色はセル面全体で補間されることに注意してください。 pyvista "warp" 操作は、同じノードの標高値を使用してメッシュを押し出し、グローバルなサーフェスの地形を強調します。

The warp uses compute_normals() and warp_by_scalar(). See Computing Surface Normals for further details.

🏷 Tags: domain: orography filter: warp sample: unstructured projection: crs projection: transform version: 0.1.0


from unstructured  lfric orog eqc
from __future__ import annotations

import geovista as gv
from geovista.pantry.meshes import lfric_orog
from geovista.transform import transform_mesh


def main() -> None:
    """Plot a projected warped LFRic unstructured mesh.

    Notes
    -----
    .. versionadded:: 0.1.0

    """
    # Load the sample mesh.
    mesh = lfric_orog()

    # Transform the mesh to the Plate Carrée projection.
    mesh = transform_mesh(mesh, crs := "esri:54001")

    # Warp the mesh nodes by the surface altitude.
    mesh.compute_normals(cell_normals=False, point_normals=True, inplace=True)
    mesh.warp_by_scalar(inplace=True, factor=200)

    # Plot the unstructured mesh.
    p = gv.GeoPlotter(crs=crs)
    sargs = {"title": "Surface Altitude / m", "fmt": "%.0f"}
    p.add_mesh(mesh, scalar_bar_args=sargs)
    p.add_text(
        f"LFRic C48 Unstructured Cube-Sphere ({crs})",
        position="upper_left",
        font_size=10,
    )

    # Define a specific camera position.
    p.view_xy()
    p.camera.zoom(1.5)

    p.add_axes()
    p.show()


if __name__ == "__main__":
    main()

Sphinx-Galleryによって生成されたギャラリー