Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
pyicon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Quan Liu
pyicon
Commits
6630ad0b
Commit
6630ad0b
authored
2 years ago
by
Nils Brüggemann
Browse files
Options
Downloads
Patches
Plain Diff
examp_easyms2022: Allow section plotting with accessor syntax.
parent
0a8fc0a4
Branches
develop
master
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
notebooks/examp_easyms2022.ipynb
+38
-18
38 additions, 18 deletions
notebooks/examp_easyms2022.ipynb
with
38 additions
and
18 deletions
notebooks/examp_easyms2022.ipynb
+
38
−
18
View file @
6630ad0b
...
...
@@ -366,6 +366,29 @@
"## Plotting meridional sections"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "bc2ba869-6b03-4fc7-a3c1-2d9c5b7c5237",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAHRCAYAAABw2JGtAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLuUlEQVR4nO3deZwU1b3//3d196wwDMOwjKOsXuIGagAzosYlGkRFQ4xRRAkaoxjXEbd4NYkaA0ETl1yiRoNLNF68v59rNEFIVAKXRULE7RJNXFFBZHFgYJiZ7q7vH0rLLPU50EXTQ/F6Ph48dOqcOnW6qrrq06dOneP5vu8LAAAAiIBYvisAAAAAbC8EtwAAAIgMglsAAABEBsEtAAAAIoPgFgAAAJFBcAsAAIDIILgFAABAZBDcAgAAIDIIbgEAABAZBLcAAADYIR555BHdfvvtOd2Gx/S7AAAA2BFGjRql119/Xe+9917OtkHLLQAAACJjlwlun3rqKe2///4qKirSgAEDdMcdd+j666+X53mSlPn/9v6dddZZmXJuuOEG1dTUqFu3burSpYuGDBmiadOmacsG8NGjR6tv375Kp9Nt6lFTU6MhQ4Zk/vZ9X3feeacOPPBAlZSUqKKiQqeccoreeeed3O0MAAAAh3//+986++yzNXDgQJWWlmr33XfXiSeeqNdee61FvgceeECe57VpjX3xxRfleZ5efPFFSdKRRx6pZ599Vu+//36LOGuzNWvW6IILLtDuu++uwsJCDRgwQNdee60aGxu3qd6JrD7tTmbGjBk6+eSTdfjhh+vRRx9VMpnUL3/5S33yySeZPD/4wQ80cuTIFus9/vjjuuWWW7Tffvtllr333nuaMGGC+vTpI0lasGCBLr74Yn300Uf6yU9+Ikn6/ve/r29961t6/vnndcwxx2TW/ec//6mXXnpJv/71rzPLJkyYoAceeECXXHKJpkyZojVr1ujGG2/UIYccoldeeUW9evXKyT4BAACwfPzxx6qsrNQvfvEL9ejRQ2vWrNGDDz6ompoavfzyy9prr722qbw777xT5513nt5++2098cQTLdI2bdqko446Sm+//bZuuOEG7b///pozZ44mT56sJUuW6Nlnn936Dfm7gIMOOsjv3bu339jYmFm2fv16v7Ky0g/aBXPmzPGLi4v9M844w0+n0+3mSaVSfnNzs3/jjTf6lZWVmXzNzc1+r169/LFjx7bIf9VVV/mFhYX+qlWrfN/3/fnz5/uS/F/96lct8i1btswvKSnxr7rqqqw/MwAAwPaUTCb9pqYmf+DAgf5ll12WWX7//ff7kvx33323Rf4XXnjBl+S/8MILmWUnnHCC37dv3zZl33333b4k/3/+539aLJ8yZYovyZ85c+ZW1zPy3RI2bNigv//97xo9erQKCwszyzt37qwTTzyx3XWWLl2qk046SYcccojuu+++Fk3mm1tjy8vLFY/HVVBQoJ/85CdavXq1Vq5cKUlKJBI688wz9fjjj6uurk6SlEql9NBDD+lb3/qWKisrJUnPPPOMPM/TmWeeqWQymflXVVWlAw44INOMDwAAsKMlk0lNmjRJ++67rwoLC5VIJFRYWKh//etfWrp06Xbd1vPPP69OnTrplFNOabF8c9fQv/71r1tdVuSD27Vr18r3/XYf77e37OOPP9bIkSO1xx576PHHH28REL/00ksaMWKEJOnee+/V//7v/2rRokW69tprJUkNDQ2ZvN///ve1adMmTZ8+XZL03HPPafny5Tr77LMzeT755JNM3QoKClr8W7BggVatWrV9dgIAAMA2mjhxon784x9r9OjR+uMf/6iFCxdq0aJFOuCAA1rEPNvD6tWrVVVV1aJBUZJ69uypRCKh1atXb3VZke9zW1FRIc/zWvSv3WzFihUt/l63bp2OP/54pdNp/elPf1J5eXmL9OnTp6ugoEDPPPOMiouLM8uffPLJNmXvu++++trXvqb7779fEyZM0P3336/q6upMcCxJ3bt3l+d5mjNnjoqKitqU0d4yAACAHeHhhx/W9773PU2aNKnF8lWrVqlr166ZvzfHRK1f/NqWRrrKykotXLhQvu+3CHBXrlypZDKp7t27b3VZkW+57dSpk4YNG6Ynn3xSTU1NmeX19fV65plnMn83NTXp29/+tt577z39+c9/1h577NGmLM/zlEgkFI/HM8saGhr00EMPtbvts88+WwsXLtTcuXP1xz/+UePHj2+x7qhRo+T7vj766CMNGzaszb/Bgwdvj10AAACwzTzPa9PQ9uyzz+qjjz5qsaxfv36SpFdffbXF8qeffrpNmUVFRe22+h599NGqr69v02D4+9//PpO+tSLfcitJN954o0444QQde+yxuvTSS5VKpXTLLbeoc+fOWrNmjSTpsssu0/PPP69Jkyapvr5eCxYsyKzfo0cP7bnnnjrhhBN06623auzYsTrvvPO0evVq/fKXvwxsYT399NM1ceJEnX766WpsbGwxpJgkHXrooTrvvPN09tln6+9//7sOP/xwderUScuXL9fcuXM1ePBg/fCHP8zZfgEAAAgyatQoPfDAA9p77721//77a/HixbrlllvaNAAedNBB2muvvXTFFVcomUyqoqJCTzzxhObOndumzMGDB+vxxx/XXXfdpaFDhyoWi2nYsGH63ve+p9/85jcaP3683nvvPQ0ePFhz587VpEmTdPzxx7cYfcppq18928k98cQT/uDBg/3CwkK/T58+/i9+8Qv/kksu8SsqKnzf9/0jjjjCl9Tuv/Hjx2fKue+++/y99trLLyoq8gcMGOBPnjzZnzZtWrtvCfq+748dO9aX5B966KGBdbvvvvv8mpoav1OnTn5JSYm/5557+t/73vf8v//979t7NwAAAGyVtWvX+uecc47fs2dPv7S01D/ssMP8OXPm+EcccYR/xBFHtMj71ltv+SNGjPC7dOni9+jRw7/44ov9Z599ts1oCWvWrPFPOeUUv2vXrr7neS1GrVq9erV//vnn+7vttpufSCT8vn37+tdcc42/adOmbar3Ljv9bnNzsw488EDtvvvumjlzZr6rAwAAgO1gl+iWIEnnnHOOvvnNb2q33XbTihUrdPfdd2vp0qW644478l01AAAAbCe7THC7fv16XXHFFfr0009VUFCgIUOG6E9/+tO29eEAAABAh7bLdksAAABA9ER+KDAAAADsOghuAQAAEBkEtwAAAIiMyL5Qlk6n9fHHH6usrKzNPMUAAADYefi+r/Xr16u6ulqxmN02G9ng9uOPP1bv3r3zXQ0AAABsJ8uWLWszQ1prkQ1uy8rKJEn333+/SktLJUlTZzQF5m9e32iWFysM3lWlvTqb6xaXBq9bWGSkFduHp6y8/Wl/JamyspO5btfOhYFpnUuD07oY60lS54J4YFqpkSZJJUZ6F2P/S1JpYmNwuYm1gWmdEmvMchObPglM89d9aq6r9XXBaXXrgsvdsMEu11g3tWqTuWp6Q/B3IF0X/B3wG9N2uQ3NgWlN9cHblKSmdcHrNqxpO//4ZskNwetJUlNT8EAwyZS5qinmeBBU0im4RSFufKeb1jv2k5Hs+jypLD9v3P7K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JkyYsINri10FLbfocKZMmaLKykodeOCB+vnPf96iy8H8+fM1aNCgTGArSccee6waGxu1ePHifFQX2GpNTU1avHixRowY0WL5iBEjNG/evDzVCgjnX//6l6qrq9W/f3+NGTNG77zzjiTp3Xff1YoVK1qc70VFRTriiCM435FTiXxXANjSpZdeqiFDhqiiokIvvfSSrrnmGr377rv63e9+J0lasWKFevXq1WKdiooKFRYWasWKFfmoMrDVVq1apVQq1eYc7tWrF+cvdko1NTX6/e9/r6985Sv65JNPdNNNN+mQQw7RG2+8kTmn2zvf33///XxUF7sIglvk3PXXX68bbrjBzLNo0SINGzZMl112WWbZ/vvvr4qKCp1yyimZ1lxJ8jyvzfq+77e7HOiIWp+rnL/YWR133HGZ/x88eLCGDx+uPffcUw8++KAOPvhgSZzv2PEIbpFzF110kcaMGWPm6devX7vLN18c//3vf6uyslJVVVVauHBhizxr165Vc3Nzm9YBoKPp3r274vF4m1balStXcv4iEjp16qTBgwfrX//6l0aPHi3p8yduu+22WyYP5ztyjT63yLnu3btr7733Nv8VFxe3u+7LL78sSZkL4/Dhw/X6669r+fLlmTwzZ85UUVGRhg4dmvsPA4RQWFiooUOHatasWS2Wz5o1S4ccckieagVsP42NjVq6dKl222039e/fX1VVVS3O96amJs2ePZvzHTlFyy06jPnz52vBggU66qijVF5erkWLFumyyy7TSSedpD59+kj6/MWbfffdV+PGjdMtt9yiNWvW6IorrtC5557LSAnYKUycOFHjxo3TsGHDNHz4cN1zzz364IMPdP755+e7asA2u+KKK3TiiSeqT58+WrlypW666SatW7dO48ePl+d5qq2t1aRJkzRw4EANHDhQkyZNUmlpqcaOHZvvqiPCCG7RYRQVFenRRx/VDTfcoMbGRvXt21fnnnuurrrqqkyeeDyuZ599VhdccIEOPfRQlZSUaOzYsfrlL3+Zx5oDW++0007T6tWrM+M5Dxo0SH/605/Ut2/ffFcN2GYffvihTj/9dK1atUo9evTQwQcfrAULFmTO56uuukoNDQ264IILtHbtWtXU1GjmzJkqKyvLc80RZYxzCwAAgMigzy0AAAAig+AWAAAAkUFwCwAAgMgguAUAAEBkENwCAAAgMghuAQAAEBkEtwAAAIgMglsAAABEBsEtAAAAIoPgFgAAAJFBcAsAAIDIILgFAABAZBDcAgAAIDIIbgEAABAZBLcAAACIDIJbAAAARAbBLQAAACKD4BYAAACRQXALAACAyCC4BQAAQGQQ3AIAACAyCG4BAAAQGQS3AAAAiAyCWwAAAERGIt8ViIrly5frscce0/Lly/NdFQAAgJwqLCzUcccdp4MOOkie5+W7Oi14vu/7+a7EzmrVqlV67LHHdMWVv1J9/dvq3HlPFRX3UuYYb3mwv/j/L9O2Po8Xa+ekabWsvTxtlm0uuMUmWy1rXYct/4htztq6nl6brF/+t51tbl7/i/p5Xya0qZdZTpu6bi53y20F5G3ncwaW1/YQtdkHW36xW38eK0+bz9l6Q/ryUHtqmclrb78Hfpb21m+1zXY+XzvVafvZA+rQ7jZb1a/FslYLrHq1+/UJ2pY2X+L8LfJ+8f+e32pbVh6jHPntrtN+nna25QWU0+bvLdbbXC+/1fIt/7/15d238vgt/mOV47dex9zWdspj1d1X2zyucvx20tqU287tsU05W27TUV57edrbB+lW20z7LXOkrfJa12HLTVj7y1U/q5z2yvNbrRO8TT8ob4ty/FbrtJcn4O92tm+V1zrNKs/f/D/pVn+383msUy9U3pB5tuU03zJrg9Jaog3qrLiGq0w/e+UFDR48uEMEugS326iurk5PPfWULrpkitav+6dKS/uqonKoKrp9VQWFXSVtEbTFtzjAsViLZdnkaRGsxmPOPJmyY+3nbZE/oLz2txH7olivxX+3zNM6bcs8sc3rt8rrtcjTav14cDleQF6rHl6rOlh5Y17bPPGtyPPlfz9fHrfyeMH7K74VeYLKiW+Zp836LZd//v+t8mb+m8mS+Rxbk7f1stZ5209rW694iG15X9x1PO/LiCGmVItl2ebxvsgT24o8m5fF1DJvy21se3mev/muukVElFnmt/w73V6etJHHbzePb5bX/jot8rfZtu/Ok26nnMx//a3IE7BOO2ntfr6gbW3LNq31t8jjp/yWeb/422/19+f/n24/bYvP92V56fbL23K9Ntvaol4B22hTX6Nefjv12rws3V6ezcekVZqf2jLPF+u3SmtZTuu09su1ymlvm63T0i3KCfhv8KlnnzoBaVuGcWHK2ZZ6bdaktF7VRi3Qev1D9apUgYarTD//5/9qr732Ur7QLWErbNiwQc8++6zOO3+S1n32hopLqlTRbah69ztNRUXd8109AACAHa5QMQ1TZw1TZ21SWi9rgxZonQbtvY/2UKF+OOVGnXbaaerbt+8OrRfBbYDGxkY999xzOuvsn6nus1dVUFihisqhqt7jJBWXVOW7egAAAB1GsWIarjINV5k2KqW/q15/uPoG/efVV2uAinXRHVP03e9+V7vttlvO68JoCVtIJpOaOXOmKnsMV6dOFfrud7+vwqJuGrjv5dpn8I+12+4nENgCAAAYShXX4SrX1dpDv9Ge+rq66O5Lf6Te1dXazyvVPffco9WrV+ds+7t8cJtOp/W3v/1NPXodrpKSCo0adari8VLtuddF2veAG1Td+1sqLd2jQ3SQBgAA2JmUKa6j1VXXqbfu0AANVWfdMuFS9ereXQd6nfT73/9edXV123Wbu2S3BN/3tWjRIo066Rp9tuYf8v2kunb7qvr/xw/UqWxPed4uH/MDAABsVxVKaKQqNFIVWqlmLdR6/WT8efqBztIB6qQrH52mUaNGqbS0NNR2dpng1vd9vfbaaxox8kqtXbNYqeRGlVccoD4DzlRZl6/I8+L5riIAAMAuoacKdKK66UR108dq0nyt12WnjdP31Kwh6qwfPfWwjj32WBUVFW1z2ZEPbt966y0d8Y2J+mz1YjU1rVF51/21R59TVFa+j2KxgnxXDwAAYJdWrUJ9R5U6Wd30gZo0X+v0g299RxuU1kHqrP987v/TN77xDSUSWxe2Rjq47dR5gDZueFddug5W1e7Hq0vXQYrHt/0XAAAAAHLLk6e+KlJf9dBp6q53tEnztV7fPvY4JeSpVtW6wf/AWU6kO5d2LhugREG5Nta/q/r1/1bDxmVfDs4NAACADmmVkvo/NWipGtQkXwNVrLH/nLVV60a65faT5X9RKpXSnDlzdMqpP9Y7/7pHMa9AXSuHqKLbMJV26sMoCAAAAB3AZ0pqodZrvtbrHW3SfirVT++/W6NHj1bXrl23upxIB7eSFI/HdeSRR2rVyjlqbm7WX//6V50x7nr9+81fK5HorIpuQ1VROVTFJdUEugAAADvQeqW0SOu1QOv1TzXoKyrRxLtu03e+8x316NEjqzIjH9xuqaCgQCNHjtTqT0dq06ZNmjFjhs4+5ya9+X+3qKioUhXdhqlrtyEqLumV76oCAABE0kaltFgbtEDr9Zo2qJ+KddFtk/Xd735Xu+++e+jyd6ngdkvFxcUaPXq0Ro8erfr6ej3zzDM6/4eTteLjGSou2U0VlUNV0W2ICosq811VAACAnVqj0lqiDZqv9VqiDdpNhfrh5Ov1+GmnqX///tt1W7tscLulzp07a8yYMRozZow+++wzPfnkk7qk9mZ9/OHT6tSpnyq6DVXXbl9VQWF5vqsKAACwU2hWWq9po+ZrvRarXt2U0HCV6cH/e0n77LNPzrZLcNtK165dddZZZ+mss87Sp59+qscee0xXXnWrPlz2mDqX/cfnXRcqDlCioHO+qwoAANChpOTr/74IaBepXqWKabjKtODlf+iAAw7YIe83EdwaevToofPPP1/nn3++PvroI9UccqlWfzpPH77/qMq67K2KyqEqr9hf8XhJvqsKAACQF2n5eksNmq/1ekn1ikk6WGX66/z/VU1NzQ5/YZ/gdivtvvvu+vD9/1+S9O677+rQwy/TyhV/1QfvPqIuXQd9HuiWD1IsXpjnmgIAAOSWL1/vqFHzvxjpoFlp1ahMT7/4Vx122GGKx+N5q5vn+76ft61HwNKlS/WNY67Q2jWL1dy0VoVF3SS18wul9SJv83+2Pm+LBM+dZYuNBGu1ovnjKou81udrW2evdZbgz2lUoN3FQfUJ3qWZgtrdirlr298/7R2aL//clnoFrLNlFuu0apW47Z8vqF7G/tpu23Kfe8FJfts8Xtu0L5OCLo3t5Q1Oyyxr8zmNvFtV7jaktZslYL2tuiVkUe7Wlh2Yx2/3f7e6PuZuymJfZJ3W5n/a+dNKaz+vuWtbb9N96m2xvJ2EwPq0zdtm9a34nO1nceyT9rZlnDPh8gYn5uW0sA7RNqRt69dno9LatHl63Bn/o2984xsqKChor5QdjuB2O/F9X6+99pqWL1+el+03Nzdr+vTpGjNmTIc5udCxcc5gW3C+YFtwvkRfUVGRDj74YBUXF+e7Km0Q3EbEunXrVF5errq6OnXp0iXf1cFOgHMG24LzBduC8wX5FMt3BQAAAIDtheAWAAAAkUFwCwAAgMgguI2IoqIi/fSnP1VRUVG+q4KdBOcMtgXnC7YF5wvyiRfKAAAAEBm03AIAACAyCG4BAAAQGQS3AAAAiAyCWwAAAEQGwW1E3Hnnnerfv7+Ki4s1dOhQzZkzJ99VQgeUTCZ13XXXqX///iopKdGAAQN04403Kp1O57tq6AD+9re/6cQTT1R1dbU8z9OTTz7ZJs/SpUt10kknqby8XGVlZTr44IP1wQcf7PjKIu8mT56sgw46SGVlZerZs6dGjx6tN998MzD/hAkT5Hmebr/99h1XSeySCG4j4NFHH1Vtba2uvfZavfzyy/r617+u4447jhsO2pgyZYruvvtuTZ06VUuXLtXNN9+sW265Rf/1X/+V76qhA9iwYYMOOOAATZ06td30t99+W4cddpj23ntvvfjii3rllVf04x//uEPOLY/cmz17ti688EItWLBAs2bNUjKZ1IgRI7Rhw4Y2eZ988kktXLhQ1dXVeagpdjUMBRYBNTU1GjJkiO66667Msn322UejR4/W5MmT81gzdDSjRo1Sr169NG3atMyy73znOyotLdVDDz2Ux5qho/E8T0888YRGjx6dWTZmzBgVFBRwrqBdn376qXr27KnZs2fr8MMPzyz/6KOPVFNTo+eee04nnHCCamtrVVtbm7+KIvJoud3JNTU1afHixRoxYkSL5SNGjNC8efPyVCt0VIcddpj++te/6q233pIkvfLKK5o7d66OP/74PNcMHV06ndazzz6rr3zlKzr22GPVs2dP1dTUtNt1Abumuro6SVK3bt0yy9LptMaNG6crr7xS++23X76qhl0Mwe1ObtWqVUqlUurVq1eL5b169dKKFSvyVCt0VFdffbVOP/107b333iooKNBXv/pV1dbW6vTTT8931dDBrVy5UvX19frFL36hkSNHaubMmfr2t7+tk08+WbNnz8539ZBnvu9r4sSJOuywwzRo0KDM8ilTpiiRSOiSSy7JY+2wq0nkuwLYPjzPa/G37/ttlgGPPvqoHn74YT3yyCPab7/9tGTJEtXW1qq6ulrjx4/Pd/XQgW1+6fBb3/qWLrvsMknSgQceqHnz5unuu+/WEUcckc/qIc8uuugivfrqq5o7d25m2eLFi3XHHXfoH//4B/cj7FC03O7kunfvrng83qaVduXKlW1ac4Err7xSP/rRjzRmzBgNHjxY48aN02WXXUbfbDh1795diURC++67b4vl++yzDy+v7uIuvvhiPf3003rhhRe0xx57ZJbPmTNHK1euVJ8+fZRIJJRIJPT+++/r8ssvV79+/fJXYUQewe1OrrCwUEOHDtWsWbNaLJ81a5YOOeSQPNUKHdXGjRsVi7X82sfjcYYCg1NhYaEOOuigNkM9vfXWW+rbt2+eaoV88n1fF110kR5//HE9//zz6t+/f4v0cePG6dVXX9WSJUsy/6qrq3XllVfqueeey1OtsSugW0IETJw4UePGjdOwYcM0fPhw3XPPPfrggw90/vnn57tq6GBOPPFE/fznP1efPn2033776eWXX9att96q73//+/muGjqA+vp6/fvf/878/e6772rJkiXq1q2b+vTpoyuvvFKnnXaaDj/8cB111FGaMWOG/vjHP+rFF1/MX6WRNxdeeKEeeeQRPfXUUyorK8s8QSwvL1dJSYkqKytVWVnZYp2CggJVVVVpr732ykeVsavwEQm/+c1v/L59+/qFhYX+kCFD/NmzZ+e7SuiA1q1b51966aV+nz59/OLiYn/AgAH+tdde6zc2Nua7augAXnjhBV9Sm3/jx4/P5Jk2bZr/H//xH35xcbF/wAEH+E8++WT+Koy8au9ckeTff//9gev07dvXv+2223ZYHbFrYpxbAAAARAZ9bgEAABAZBLcAAACIDIJbAAAARAbBLQAAACKD4BYAAACRQXALAACAyCC4BQAAQGQQ3AIAACAyCG4BYCfywAMPyPM8eZ6n2tranG2nX79+me189tlnOdsOAGxvBLcAsAMceeSR2y0Y7dKli5YvX66f/exnLcr3PE/Tp09vkff2229Xv3792pTR0NCgiooKdevWTQ0NDW3SFy1apMcee2y71BcAdiSCWwDYyXiep6qqKpWVlbVYXlxcrOuuu07Nzc3OMh577DENGjRI++67rx5//PE26T169FC3bt22W50BYEchuAWAHDvrrLM0e/Zs3XHHHZlH/e+9954kafbs2fra176moqIi7bbbbvrRj36kZDKZ1XZOP/101dXV6d5773XmnTZtms4880ydeeaZmjZtWlbbA4COiOAWAHLsjjvu0PDhw3Xuuedq+fLlWr58uXr37q2PPvpIxx9/vA466CC98soruuuuuzRt2jTddNNNWW2nS5cu+s///E/deOON2rBhQ2C+t99+W/Pnz9epp56qU089VfPmzdM777yT7ccDgA6F4BYAcqy8vFyFhYUqLS1VVVWVqqqqFI/Hdeedd6p3796aOnWq9t57b40ePVo33HCDfvWrXymdTme1rQsuuEDFxcW69dZbA/Pcd999Ou644zJ9bkeOHKn77rsv248HAB0KwS0A5MnSpUs1fPhweZ6XWXbooYeqvr5eH374YVZlFhUV6cYbb9Qtt9yiVatWtUlPpVJ68MEHdeaZZ2aWnXnmmXrwwQeVSqWy2iYAdCQEtwCQJ77vtwhsNy+T1Gb5tjjzzDPVr1+/drs3PPfcc/roo4902mmnKZFIKJFIaMyYMfrwww81c+bMrLcJAB0FwS0A7ACFhYVtWkb33XdfzZs3LxPQStK8efNUVlam3XffPettxWIxTZ48WXfddVfmxbXNpk2bpjFjxmjJkiUt/p1xxhm8WAYgEghuAWAH6NevnxYuXKj33ntPq1atUjqd1gUXXKBly5bp4osv1j//+U899dRT+ulPf6qJEycqFgt3eT7hhBNUU1Oj3/72t5lln376qf74xz9q/PjxGjRoUIt/48eP19NPP61PP/007EcFgLwiuAWAHeCKK65QPB7Xvvvuqx49euiDDz7Q7rvvrj/96U966aWXdMABB+j888/XOeeco+uuu267bHPKlCnatGlT5u/f//736tSpk44++ug2eY866iiVlZXpoYce2i7bBoB88fwtn4cBADq0Bx54QLW1tTtkStwXX3xRRx11lNauXauuXbvmfHsAsD3QcgsAO5m6ujp17txZV199dc62sd9+++m4447LWfkAkCu03ALATmT9+vX65JNPJEldu3ZV9+7dc7Kd999/PzON74ABA0L3AQaAHYXgFgAAAJHBT3EAAABEBsEtAAAAIoPgFgAAAJFBcAsAAIDIILgFAABAZBDcAgAAIDIIbgEAABAZBLcAAACIjP8HykA1duDostYAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 751.967x480.314 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ds_3d.to.isel(time=-1).pyic.plot_sec(section='gzave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0,)"
]
},
{
"cell_type": "code",
"execution_count": 12,
...
...
@@ -430,7 +453,7 @@
},
{
"cell_type": "code",
"execution_count":
14
,
"execution_count":
27
,
"id": "54357aa3-b360-45e0-80fe-84d5f83a5324",
"metadata": {},
"outputs": [
...
...
@@ -446,11 +469,10 @@
}
],
"source": [
"pyic.plot_sec(ds_3d.to.isel(time=-1), \n",
" section='gzave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid \n",
" )"
"ds_3d.to.isel(time=-1).pyic.plot_sec(section='gzave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid overprecision\n",
" )"
]
},
{
...
...
@@ -463,7 +485,7 @@
},
{
"cell_type": "code",
"execution_count":
15
,
"execution_count":
28
,
"id": "5cc04bab-6fc0-48f5-8d6a-09dda45d14fb",
"metadata": {},
"outputs": [
...
...
@@ -479,11 +501,10 @@
}
],
"source": [
"pyic.plot_sec(ds_3d.to.isel(time=-1), \n",
" section='azave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid \n",
" )"
"ds_3d.to.isel(time=-1).pyic.plot_sec(section='azave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid overprecision\n",
" )"
]
},
{
...
...
@@ -496,7 +517,7 @@
},
{
"cell_type": "code",
"execution_count":
16
,
"execution_count":
29
,
"id": "01d4cbe3-c54c-4bf5-9696-19192382d459",
"metadata": {},
"outputs": [
...
...
@@ -512,11 +533,10 @@
}
],
"source": [
"pyic.plot_sec(ds_3d.to.isel(time=-1), \n",
" section='ipzave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid \n",
" )"
"ds_3d.to.isel(time=-1).pyic.plot_sec(section='ipzave',\n",
" fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',\n",
" res=2.0, # choose something >= 1.0 to avoid overprecision\n",
" )"
]
},
{
...
...
%% Cell type:markdown id:f0bb0189-edc5-4e70-97bf-471aa88b9d48 tags:
# Basic plotting of ICON data
%% Cell type:markdown id:5f679850-f814-4a20-9974-0d9d362a3f15 tags:
In this notebook, we explain how to make some basic plots of ICON data using pyicon, a python based post-processing toolbox for ICON.
We assume that you have some basic knowledge about xarray, how to load data with it and how to select time and depth / height slices.
%% Cell type:markdown id:b4df0cef-8622-42ce-adb1-c6f3b9f9f27c tags:
## Some stuff for debugging
%% Cell type:code id:de28e5fc-21e3-4a73-8795-f54b55169e7d tags:
``` python
%load_ext autoreload
%autoreload 2
```
%% Cell type:code id:f0fb70b2-d4f2-45c6-87ae-018dfb9ddd50 tags:
``` python
# temporarily necessary to ignore some warnings
import shapely
import warnings
from shapely.errors import ShapelyDeprecationWarning
warnings.filterwarnings("ignore", category=ShapelyDeprecationWarning)
```
%% Cell type:code id:e861f91b-74ce-42ca-aeac-aca4136161b8 tags:
``` python
import sys
# sys.path.append('~/pyicon/')
sys.path = ['~/pyicon']+sys.path
sys.path
```
%% Output
['~/pyicon',
'/home/m/m300602/pyicon/notebooks',
'/home/m/m300602/pyicon',
'/home/m/m300602/miniconda3/envs/pyicon_py39_cartopy19/lib/python39.zip',
'/home/m/m300602/miniconda3/envs/pyicon_py39_cartopy19/lib/python3.9',
'/home/m/m300602/miniconda3/envs/pyicon_py39_cartopy19/lib/python3.9/lib-dynload',
'',
'/home/m/m300602/.local/lib/python3.9/site-packages',
'/home/m/m300602/miniconda3/envs/pyicon_py39_cartopy19/lib/python3.9/site-packages']
%% Cell type:markdown id:0b6086ed-73ab-4778-8c42-1a3e9e60f67c tags:
## Loading necessary modules
%% Cell type:code id:01f5aca0-ec02-4aab-9743-3b373b9dc989 tags:
``` python
import pyicon as pyic
import xarray as xr
import numpy as np
```
%% Output
-----calc
sys glob os
numpy
netcdf
Done modules calc.
-----calc_xr
sys glob os
numpy
netcdf
xarray
Done modules calc.
-----tb
sys
json
numpy
scipy
netcdf datetime
matplotlib
mybreak
pnadas
xarray
done xarray
-----IconData
-----plotting
-----accessor
-----view
-----calc
-----calc_xr
-----tb
-----IconData
-----plotting
-----accessor
-----view
-----quickplots
-----quickplots
%% Cell type:markdown id:1a7dc458-3f4d-4b5a-989e-60e9a1269060 tags:
## Loading the data
%% Cell type:code id:0cf700c9-dcb6-4225-a5d5-551d875dceb3 tags:
``` python
run = 'sfx0080'
ds_3d = xr.open_dataset(f'/home/m/m300602/pyicon/example_data/{run}/{run}_oce_P1M_3d_20100101.nc')
ds_2d = xr.open_dataset(f'/home/m/m300602/pyicon/example_data/{run}/{run}_oce_P1M_2d_20100101.nc')
```
%% Cell type:markdown id:3a2ff0e5-519f-4e4a-bb27-21c7e2f58349 tags:
## Basic horizontal plotting
%% Cell type:markdown id:5c2feaf7-8b8e-41f4-a597-c4a6d1000f99 tags:
### Just plotting
%% Cell type:code id:c1c08f80-89df-4677-9fc6-a16d85723374 tags:
``` python
ds_3d.to.isel(time=-1,depth=0).pyic.plot()
```
%% Output
%% Cell type:markdown id:1f760137-61c0-4fe4-b80e-b39ad00a6cc8 tags:
### Select a region
%% Cell type:code id:4ea8660e-b0cf-423d-9df5-6e899223c135 tags:
``` python
ds_3d.to.isel(time=-1,depth=0).pyic.plot(lon_reg=[-50,10], lat_reg=[0,30])
```
%% Output
%% Cell type:markdown id:436a6385-0ec0-4c8c-b1b5-090ee37b59c0 tags:
### Change how things look
%% Cell type:code id:31e94131-cec2-4bae-936c-638cd35a80db tags:
``` python
ds_3d.to.isel(time=-1,depth=0).pyic.plot(
lon_reg=[-50,10], lat_reg=[0,30],
clim=[24,30], cmap='plasma', #conts=np.linspace(24,40),
)
```
%% Output
%% Cell type:markdown id:800e0750-c613-451a-a7a1-23bf0ea853f9 tags:
### Change projection
%% Cell type:code id:710a0509-2526-4dd8-a4da-162d3a5c01a5 tags:
``` python
ds_2d.hi.isel(time=-1,lev=0).pyic.plot(projection='np')
```
%% Output
%% Cell type:markdown id:46b01f27-e5a4-4aea-bd2c-d24a5648e57e tags:
### Make continents transparent
%% Cell type:code id:1e647bde-282e-4d65-b240-eccbb552bfd6 tags:
``` python
ds_3d.to.isel(time=-1).sel(depth=20., method='nearest').pyic.plot(land_facecolor='none')
```
%% Output
%% Cell type:markdown id:0b98c794-e9e7-45b5-8107-e0f8030750f2 tags:
### Plot on the original grid
%% Cell type:code id:4165c490-c096-4a49-8fa8-42476322ba36 tags:
``` python
ds_3d.to.isel(time=-1,depth=0).pyic.plot(lon_reg=[-50,10], lat_reg=[0,30], plot_method='tgrid')
```
%% Output
Deriving triangulation object, this can take a while...
Done deriving triangulation object.
%% Cell type:markdown id:8ae82d57-a1ae-4d6c-8dd7-54540323f08c tags:
## Plotting meridional sections
%% Cell type:code id:bc2ba869-6b03-4fc7-a3c1-2d9c5b7c5237 tags:
``` python
ds_3d.to.isel(time=-1).pyic.plot_sec(section='gzave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0,)
```
%% Output
%% Cell type:code id:d9b02f72-8439-4285-8da0-edec140bf57a tags:
``` python
pyic.plot_sec(ds_3d.to.isel(time=-1),
section='30W', # only two options yet, 30W and 170W
)
```
%% Output
%% Cell type:code id:d62fa20f-173a-4ae1-b767-eb5b82275baa tags:
``` python
pyic.plot_sec(ds_3d.to.isel(time=-1),
section='170W', # only two options yet, 30W and 170W
)
```
%% Output
%% Cell type:markdown id:b199c8c1-7131-4dd1-a2eb-991a04204128 tags:
## Plotting zonal averages
%% Cell type:markdown id:70a16bd1-16d9-46a6-b895-ecccaf97ba45 tags:
### Global zonal average
%% Cell type:code id:54357aa3-b360-45e0-80fe-84d5f83a5324 tags:
``` python
pyic.plot_sec(ds_3d.to.isel(time=-1),
section='gzave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid
)
ds_3d.to.isel(time=-1).pyic.plot_sec(section='gzave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid overprecision
)
```
%% Output
%% Cell type:markdown id:d382912f-020a-42e9-9755-368e30a1dfe1 tags:
### Atlantic zonal average
%% Cell type:code id:5cc04bab-6fc0-48f5-8d6a-09dda45d14fb tags:
``` python
pyic.plot_sec(ds_3d.to.isel(time=-1),
section='azave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid
)
ds_3d.to.isel(time=-1).pyic.plot_sec(section='azave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid overprecision
)
```
%% Output
%% Cell type:markdown id:47b5933c-331e-41f6-8f29-1c584a079785 tags:
### Indo-Pacific zonal average
%% Cell type:code id:01d4cbe3-c54c-4bf5-9696-19192382d459 tags:
``` python
pyic.plot_sec(ds_3d.to.isel(time=-1),
section='ipzave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid
)
ds_3d.to.isel(time=-1).pyic.plot_sec(section='ipzave',
fpath_fx='/home/m/m300602/work/icon/grids/r2b4_oce_r0004/r2b4_oce_r0004_L40_fx.nc',
res=2.0, # choose something >= 1.0 to avoid overprecision
)
```
%% Output
%% Cell type:code id:17272b50-df87-4a12-8f80-9adea261e773 tags:
``` python
```
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment