批量文件格式转换
<p>[TOC]</p>
<pre><code class="language-python">%matplotlib inline
%load_ext autoreload
%autoreload 2
import meteva.base as meb</code></pre>
<h1>批量文件格式转换 micaps4 -> Netcdf</h1>
<p><strong><font face="黑体" color=blue size = 5>copy_m4_to_nc(input_root_dir,output_root_dir,effectiveNum = 3,recover= False,grid = None)</font></strong><br />
批量拷贝micaps4类文件成Netcdf格式 </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>input_root_dir</font></strong></td>
<td style="text-align: left;">micaps4格式数据文件的根目录</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>output_root_dir</font></strong></td>
<td style="text-align: left;">输出nc文件的根目录</td>
</tr>
<tr>
<td style="text-align: left;"><strong>effectivNum</strong></td>
<td style="text-align: left;">输出时保留的小数有效位数</td>
</tr>
<tr>
<td style="text-align: left;"><strong>recover</strong></td>
<td style="text-align: left;">是否覆盖已经存在的文件</td>
</tr>
<tr>
<td style="text-align: left;"><strong>grid</strong></td>
<td style="text-align: left;">grid不为None时,裁剪部分网格数据内容后转为nc格式文件</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">None</td>
</tr>
</tbody>
</table>
<p><strong>调用示例</strong></p>
<pre><code class="language-python">input_root_dir = r"H:\test_data\input\meb\copy_test"
output_root_dir = r"H:\test_data\output\meb\copy_test"
meb.copy_m4_to_nc(input_root_dir,output_root_dir,recover= True)</code></pre>
<pre><code>剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟
剩余1分钟</code></pre>
<h1>任意格式文件批量转换</h1>
<p><strong><font face="黑体" color=blue size = 5>copy_data(input_root_dir,output_root_dir,read_method,write_method,read_args ={},write_args ={}, recover = False,tran_extension = None,process_count = 1)</font></strong><br />
将根目录在input_root_dir下的所有文件,读取后以另一种文件格式写入到output_root_dir目录下,文件的相对路径保持不变。 </p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>input_root_dir</font></strong></td>
<td style="text-align: left;">micaps4格式数据文件的根目录</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>output_root_dir</font></strong></td>
<td style="text-align: left;">输出nc文件的根目录</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>read_method</font></strong></td>
<td style="text-align: left;">读取站点或网格数据的函数,根据文件的类型从<a href="https://www.showdoc.cc/meteva?page_id=3975601833484385">meteva.base.io.read_griddata</a>和<a href="https://www.showdoc.cc/meteva?page_id=3975601856475911">meteva.base.io.read_stadata</a>中挑选</td>
</tr>
<tr>
<td style="text-align: left;"><strong><font face="黑体" color=blue size = 5>write_method</font></strong></td>
<td style="text-align: left;">输出站点或网格数据至文件的函数,根据文件的类型从<a href="https://www.showdoc.cc/meteva?page_id=3975602191927654">meteva.base.io.write_griddata</a>和<a href="https://www.showdoc.cc/meteva?page_id=3975601986275230">meteva.base.io.write_stadata</a>中挑选</td>
</tr>
<tr>
<td style="text-align: left;"><strong>read_args</strong></td>
<td style="text-align: left;">以字典形式设置的read_method可以接受的参数(除filename之外)</td>
</tr>
<tr>
<td style="text-align: left;"><strong>write_args</strong></td>
<td style="text-align: left;">以字典形式设置的write_method可以接受的参数(除save_path之外)</td>
</tr>
<tr>
<td style="text-align: left;"><strong>recover</strong></td>
<td style="text-align: left;">是否覆盖已经存在的文件</td>
</tr>
<tr>
<td style="text-align: left;"><strong>tran_extension</strong></td>
<td style="text-align: left;">文件后缀名称的转换,<br>当tran_extension =None时,文件后缀名不变;<br>当增加后缀名时tran_extension ="+.后缀",例如将文件转换后加.nc的后缀,则tran_extension = "+.nc";<br> 当删除原始文件中.nc后缀时,tran_extension = "-.nc"</td>
</tr>
<tr>
<td style="text-align: left;"><strong>process_count</strong></td>
<td style="text-align: left;">数据格式转换的过程可以根据所在环境硬件情况采用多核并行的方式进行,process_count是并行的进程数</td>
</tr>
<tr>
<td style="text-align: left;"><font face="黑体" color=blue size=5>return</font></td>
<td style="text-align: left;">None</td>
</tr>
</tbody>
</table>
<p><strong>调用示例</strong></p>
<pre><code class="language-python">input_dir = r"H:\test_data\input\meb\copy_test"
output_dir = r"H:\test_data\output\meb\copy_test"
meb.copy_data(input_dir,output_dir,meb.read_griddata_from_micaps4,meb.write_griddata_to_nc,
recover= True,process_count=2,tran_extension="+.nc",write_args= {"effectiveNum":3})</code></pre>
<pre><code>Waiting for all subprocesses done...
All subprocesses done.</code></pre>
<p>拷贝和转换数据的过程是在其它线程上进行的,在其它线程上也会打印剩余时间的信息,但是有些编辑器并不能显示出剩余时间的信息,有些则可以。</p>