# 在指定范围内生成曲线网格 本教程简要介绍如何在指定范围内生成曲线网格。 [返回示例目录](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") ``` ![单元格 9 的绘图输出](images/07_curvilineargrid_with_defined_extension_9_0.png) ## 在笛卡尔坐标系中创建曲线网格 在笛卡尔坐标系中,无需调整 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") ``` ![单元格 16 的绘图输出](images/07_curvilineargrid_with_defined_extension_16_0.png)