{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,1]],"date-time":"2025-03-01T05:59:06Z","timestamp":1740808746402,"version":"3.38.0"},"reference-count":37,"publisher":"SAGE Publications","issue":"3","license":[{"start":{"date-parts":[[2022,3,22]],"date-time":"2022-03-22T00:00:00Z","timestamp":1647907200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["The International Journal of High Performance Computing Applications"],"published-print":{"date-parts":[[2022,5]]},"abstract":"<jats:p> The NCAR Command Language (NCL) is a popular scripting language used in the geoscience community for weather data analysis and visualization. Hundreds of years of data are analyzed daily using NCL to make accurate weather predictions. However, due to its sequential nature of execution, it cannot properly utilize the parallel processing power provided by High-Performance Computing systems (HPCs). Until now very few techniques have been developed to make use of the multi-core functionality of modern HPC systems on these functions. In the recent trend, open-source languages are becoming highly popular because they support major functionalities required for data analysis and parallel computing. Hence, developers of NCL have decided to adopt Python as the future scripting language for analysis and visualization and to enable the geosciences community to play an active role in its development and support. This study focuses on developing some of the widely used NCL routines in Python. To deal with the analysis of large datasets, parallel versions of these routines are developed to work within a single node and make use of multi-core CPUs to achieve parallelism. Results show high accuracy between NCL and Python outputs and the parallel versions provided good scaling compared to their sequential counterparts. <\/jats:p>","DOI":"10.1177\/10943420221077110","type":"journal-article","created":{"date-parts":[[2022,3,22]],"date-time":"2022-03-22T18:41:45Z","timestamp":1647974505000},"page":"337-355","update-policy":"https:\/\/doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":3,"title":["Development of NCL equivalent serial and parallel python routines for meteorological data analysis"],"prefix":"10.1177","volume":"36","author":[{"given":"Jatin","family":"Gharat","sequence":"first","affiliation":[{"name":"Computer Engineering, Ramrao Adik Institute of Technology, Navi Mumbai, India"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7047-551X","authenticated-orcid":false,"given":"Bipin","family":"Kumar","sequence":"additional","affiliation":[{"name":"HPCS, Indian Institute of Tropical Meteorology, Ministry of Earth Sciences, Pune, India."}]},{"given":"Leena","family":"Ragha","sequence":"additional","affiliation":[{"name":"Computer Engineering, Ramrao Adik Institute of Technology, Navi Mumbai, India"}]},{"given":"Amit","family":"Barve","sequence":"additional","affiliation":[{"name":"Computer Science and Engineering, Parul Institute of Engineering and Technology, Parul University, Vadodara, Gujarat, India."}]},{"given":"Shaik Mohammad","family":"Jeelani","sequence":"additional","affiliation":[{"name":"HPCS, Indian Institute of Tropical Meteorology, Ministry of Earth Sciences, Pune, India."}]},{"given":"John","family":"Clyne","sequence":"additional","affiliation":[{"name":"Computational and Information Systems Lab, National Center for Atmospheric Research, Boulder, CO, USA"}]}],"member":"179","published-online":{"date-parts":[[2022,3,22]]},"reference":[{"key":"bibr1-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.201902.007"},{"key":"bibr2-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2019.102584"},{"volume-title":"Alphabetical Listing of NCL Functions","year":"2019","author":"NCL","key":"bibr3-10943420221077110"},{"key":"bibr4-10943420221077110","unstructured":"ASCII (2019). (last accessed) https:\/\/en.wikipedia.org\/wiki\/ASCII"},{"key":"bibr5-10943420221077110","unstructured":"Binary File, 2019 (last accessed) https:\/\/en.wikipedia.org\/wiki\/Binary_file"},{"volume-title":"CESM Projects\u2014LENS","year":"2019","author":"CESM LENS dataset","key":"bibr6-10943420221077110"},{"volume-title":"Scalable Analytics in Python","year":"2020","author":"Dask","key":"bibr38-10943420221077110"},{"volume-title":"Work Stealing","year":"2020","author":"Dask","key":"bibr39-10943420221077110"},{"key":"bibr9-10943420221077110","unstructured":"Dask-Jobqueue (2020). (last accessed) https:\/\/jobqueue.dask.org\/en\/latest\/."},{"key":"bibr10-10943420221077110","unstructured":"Dask-Worker (2020). (last accessed) https:\/\/distributed.dask.org\/en\/latest\/worker.html"},{"key":"bibr11-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.asoc.2019.105976"},{"key":"bibr12-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTER.2018.00023"},{"key":"bibr13-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.envsoft.2019.104614"},{"key":"bibr14-10943420221077110","unstructured":"GRIB (2019). (last accessed) https:\/\/en.wikipedia.org\/wiki\/GRIB"},{"volume-title":"Hierarchical Data Formats-what Is HDF5","year":"2019","author":"HDF","key":"bibr15-10943420221077110"},{"key":"bibr16-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.procs.2013.05.291"},{"key":"bibr17-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2016.12.018"},{"key":"bibr40-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1109\/ICDMW.2018.00118"},{"key":"bibr19-10943420221077110","unstructured":"Moving average (2019). (last accessed). https:\/\/en.wikipedia.org\/wiki\/Moving_average"},{"volume-title":"The Future of NCL and the Pivot to Python","year":"2019","author":"NCAR","key":"bibr20-10943420221077110"},{"volume-title":"Pivot to Python September 2019 Update","year":"2020","author":"NCAR","key":"bibr21-10943420221077110"},{"volume-title":"NCAR Command Language","year":"2019","author":"NCAR and NCL","key":"bibr7-10943420221077110"},{"key":"bibr45-10943420221077110","unstructured":"NCL (2019) Alphabetical Listing of NCL Functions. Boulder, CO: NCAR. (last accessed). https:\/\/www.ncl.ucar.edu\/Document\/Functions\/list_alpha.shtml"},{"volume-title":"Parallel Program Design: Decomposition Techniques","year":"2020","author":"Nedialkov NS","key":"bibr8-10943420221077110"},{"volume-title":"Network Common Data Form (Netcdf)","year":"2019","author":"netCDF","key":"bibr24-10943420221077110"},{"key":"bibr25-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1109\/CANDAR.2017.58"},{"key":"bibr26-10943420221077110","unstructured":"Pratyush-Compute Info (2019). (last accessed) http:\/\/pratyush.tropmet.res.in\/compute-info\/compute-info.php."},{"key":"bibr27-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.jocs.2018.04.015"},{"volume-title":"PyNio and PyNGL Python Packages for File Input\/output and Visualization","year":"2020","author":"PyNGL","key":"bibr28-10943420221077110"},{"key":"bibr41-10943420221077110","unstructured":"Regridding Overview, NCAR (2021) (last accessed). https:\/\/climatedataguide.ucar.edu\/climate-data-tools-and-analysis\/regridding-overview#:\u223c:text=Regridding%20is%20the%20process%20of,regridding%20refers%20to%20spatial%20interpolation"},{"key":"bibr30-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2014.2322593"},{"key":"bibr31-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1109\/HIPC.2010.5713171"},{"key":"bibr32-10943420221077110","unstructured":"Speedup (2020). (last accessed). https:\/\/en.wikipedia.org\/wiki\/Speedup."},{"volume-title":"Xarray: N-D labeled arrays and datasets in Python","year":"2019","author":"Xarray","key":"bibr37-10943420221077110"},{"key":"bibr34-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.parco.2017.04.004"},{"key":"bibr35-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.cageo.2017.08.002"},{"key":"bibr36-10943420221077110","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2020.02.004"}],"container-title":["The International Journal of High Performance Computing Applications"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/10943420221077110","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/full-xml\/10.1177\/10943420221077110","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/10943420221077110","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,2,28]],"date-time":"2025-02-28T22:28:15Z","timestamp":1740781695000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/10.1177\/10943420221077110"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,22]]},"references-count":37,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2022,5]]}},"alternative-id":["10.1177\/10943420221077110"],"URL":"https:\/\/doi.org\/10.1177\/10943420221077110","relation":{},"ISSN":["1094-3420","1741-2846"],"issn-type":[{"type":"print","value":"1094-3420"},{"type":"electronic","value":"1741-2846"}],"subject":[],"published":{"date-parts":[[2022,3,22]]}}}