{ "cells": [ { "cell_type": "code", "execution_count": 1, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "import netCDF4 as nc\n", "import numpy as np\n", "import datetime as dt\n", "from osgeo import gdal" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 2, "outputs": [], "source": [ "file_path = \"data/2022-07-22/PAR_Minutes_Download/\"" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 3, "outputs": [], "source": [ "target_lon = '120.85'\n", "target_lat = '29.6'" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 7, "outputs": [], "source": [ "par_list = list()\n", "file_list = [x for x in os.listdir(file_path) if x.endswith('.nc')]\n", "for file in file_list:\n", " file_name = f\"{file_path}{file}\"\n", " date = file.split('_')[1] + ':' + file.split('_')[2]\n", " nc_data = nc.Dataset(file_name)\n", " lat = nc_data['latitude'][:] # 纬度\n", " lon = nc_data['longitude'][:] # 经度\n", " lat_str = list(map(lambda x: str(round(x, 2)), np.asarray(nc_data['latitude'][:])))\n", " lon_str = list(map(lambda x: str(round(x, 2)), np.asarray(nc_data['longitude'][:])))\n", " latMin, latMax, lonMin, lonMax = min(lat), max(lat), min(lon), max(lon)\n", " # 分辨率\n", " lat_Res = (latMax - latMin) / (lat.shape[0]-1)\n", " lon_Res = (lonMax - lonMin) / (lon.shape[0]-1)\n", " lon_index = lon_str.index(target_lon)\n", " lat_index = lat_str.index(target_lat)\n", " par = np.asarray(nc_data['PAR'][:])\n", " par_list.append([date, par[lat_index][lon_index]])" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [ "par_df = pd.DataFrame.from_records(par_list, columns=['time', 'par'])" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 20, "outputs": [], "source": [ "par_df.time = par_df.time.apply(lambda x: dt.datetime.strptime(x, '%Y%m%d:%H%M') + dt.timedelta(hours=8))" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 21, "outputs": [ { "data": { "text/plain": " time par\ntime \n2022-07-22 08:00:00 20220722:0000 1146.900024\n2022-07-22 08:10:00 20220722:0010 1217.099976\n2022-07-22 08:20:00 20220722:0020 1288.800049\n2022-07-22 08:30:00 20220722:0030 1354.800049\n2022-07-22 08:40:00 20220722:0040 1419.900024\n... ... ...\n2022-07-23 07:10:00 20220722:2310 778.400024\n2022-07-23 07:20:00 20220722:2320 854.799988\n2022-07-23 07:30:00 20220722:2330 928.000000\n2022-07-23 07:40:00 20220722:2340 1011.000000\n2022-07-23 07:50:00 20220722:2350 1081.800049\n\n[141 rows x 2 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
timepar
time
2022-07-22 08:00:0020220722:00001146.900024
2022-07-22 08:10:0020220722:00101217.099976
2022-07-22 08:20:0020220722:00201288.800049
2022-07-22 08:30:0020220722:00301354.800049
2022-07-22 08:40:0020220722:00401419.900024
.........
2022-07-23 07:10:0020220722:2310778.400024
2022-07-23 07:20:0020220722:2320854.799988
2022-07-23 07:30:0020220722:2330928.000000
2022-07-23 07:40:0020220722:23401011.000000
2022-07-23 07:50:0020220722:23501081.800049
\n

141 rows × 2 columns

\n
" }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "par_df" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }