首次提交
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# 在指定范围内生成曲线网格
|
||||
|
||||
本教程简要介绍如何在指定范围内生成曲线网格。
|
||||
|
||||
[返回示例目录](index.md)
|
||||
|
||||
以下保留原笔记本的代码和已保存输出;转换过程中未重新执行代码。
|
||||
|
||||
首先导入所需的库。
|
||||
|
||||
```python
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
from meshkernel import (
|
||||
GeometryList,
|
||||
GriddedSamples,
|
||||
MakeGridParameters,
|
||||
MeshKernel,
|
||||
MeshRefinementParameters,
|
||||
ProjectionType,
|
||||
RefinementType,
|
||||
)
|
||||
```
|
||||
|
||||
## 在球面坐标系中创建曲线网格
|
||||
|
||||
网格从原点延伸到右上角,自动计算行数和列数,并调整纬度,使实际距离上的纵横比接近 1。
|
||||
|
||||
```python
|
||||
lon_min, lon_max = -1, -0.2
|
||||
lat_min, lat_max = 49.1, 49.6
|
||||
lon_res, lat_res = 0.1, 0.1
|
||||
|
||||
make_grid_parameters = MakeGridParameters()
|
||||
make_grid_parameters.origin_x = lon_min
|
||||
make_grid_parameters.origin_y = lat_min
|
||||
make_grid_parameters.upper_right_x = lon_max
|
||||
make_grid_parameters.upper_right_y = lat_max
|
||||
make_grid_parameters.block_size_x = lon_res
|
||||
make_grid_parameters.block_size_y = lat_res
|
||||
|
||||
mk = MeshKernel(projection=ProjectionType.SPHERICAL)
|
||||
mk.curvilinear_compute_rectangular_grid_on_extension(make_grid_parameters)
|
||||
```
|
||||
|
||||
将曲线网格转换为非结构网格。
|
||||
|
||||
```python
|
||||
mk.curvilinear_convert_to_mesh2d()
|
||||
```
|
||||
|
||||
绘制网格。
|
||||
|
||||
```python
|
||||
mesh2d = mk.mesh2d_get()
|
||||
fig, ax = plt.subplots()
|
||||
mesh2d.plot_edges(ax, color="black")
|
||||
```
|
||||
|
||||

|
||||
|
||||
## 在笛卡尔坐标系中创建曲线网格
|
||||
|
||||
在笛卡尔坐标系中,无需调整 y 坐标。
|
||||
|
||||
```python
|
||||
min_x, min_y = 0, 0
|
||||
max_x, max_y = 10.0, 10.0
|
||||
block_size_x, block_size_y = 1, 2
|
||||
|
||||
make_grid_parameters = MakeGridParameters()
|
||||
make_grid_parameters.origin_x = min_x
|
||||
make_grid_parameters.origin_y = min_y
|
||||
make_grid_parameters.upper_right_x = max_x
|
||||
make_grid_parameters.upper_right_y = max_y
|
||||
make_grid_parameters.block_size_x = block_size_x
|
||||
make_grid_parameters.block_size_y = block_size_y
|
||||
|
||||
mk = MeshKernel(projection=ProjectionType.CARTESIAN)
|
||||
mk.curvilinear_compute_rectangular_grid_on_extension(make_grid_parameters)
|
||||
```
|
||||
|
||||
将曲线网格转换为非结构网格。
|
||||
|
||||
```python
|
||||
mk.curvilinear_convert_to_mesh2d()
|
||||
```
|
||||
|
||||
绘制网格。
|
||||
|
||||
```python
|
||||
mesh2d = mk.mesh2d_get()
|
||||
fig, ax = plt.subplots()
|
||||
mesh2d.plot_edges(ax, color="black")
|
||||
```
|
||||
|
||||

|
||||
Reference in New Issue
Block a user