أكثر

البرامج / اللغات لمعالجة ملفات netcdf "بسرعة"


أنا أستخدم R للتكرار عبر آلاف ملفات NetCDF (بيانات المناخ المصغرة) ، وبينما يمكنني القيام بذلك باستخدام R ، فإن الكود بطيء جدًا. أنا أبحث عن طريقة لتسريعها والحفاظ على الوظائف.

ما أحتاجه هو برنامج أو نظام أساسي حيث يمكنني (1) استيراد بيانات netcdf ، (2) استيراد طبقة مضلع ، (3) الحصول على متوسط ​​طبقة المضلع ، و (4) تصدير الإخراج إلى ملف csv. ما يلي هو سير عمل رمز عام:

الشكل <- readOGR (dsn، "shape") ## قراءة في ملفات الأشكال <- dir ("in directory"، recursive = TRUE، full.names = TRUE، pattern = ". nc $") ### get مسارات الملفات إلى ملفات netCDF خارج <-NULL لـ (i in 1: length (files)) {brick.tmp <- files [i] لـ (j in 1: nlayers (brick.tmp)) {val = extract (brick. tmp [[j]]، shape، fun = mean) out <- rbind (out، val)}}

أفضل البقاء في بيئة R ، لكني لست متأكدًا من كيفية تسريع الكود.

لقد حاولت استخدام عدة برامج وقمت بالاطلاع على القائمة هنا: https://www.unidata.ucar.edu/software/netcdf/docs/software.html

ومع ذلك ، اعتقدت أنني سأستفيد من المعرفة الجماعية للجميع وأرى ما إذا كان بإمكاني تضييق نطاق الخيارات المحتملة.


يعد NetCDF عامًا بشكل لا يصدق ، كما أن كتابة التعليمات البرمجية البطيئة أمر سهل. أتعامل بشكل روتيني مع عشرات الآلاف من ملفات NetCDF في R ، باستخدام مجموعة من الحزم النقطية أو ncdf أو ncdf4 أو RNetCDF أو rgdal. المفتاح هو الاستفادة من أدوات فهرس الخلية في البيانات النقطية بحيث يحدث اختبار "خلية في مضلع" مرة واحدة فقط ، ثم يمكنك تطبيق الاستخراج عبر جميع الملفات. تقوم العديد من الأدوات عالية المستوى بذلك نيابةً عنك حتى يكون الأمر سهلاً للغاية.

يبدو سير العمل الزائف كما يلي:

مكتبة (نقطية) مكتبة (rgdal) ## إنشاء قاعدة بيانات معقولة (أكثر من ذلك ، من المدهش مدى ندرة ذلك) fs <- list.files ("nctree" ، إلخ.) poly <- readOGR ("مجلد / of / polys "،" shapefilename ") polyMatrixVals <- extract (stack (fs)، poly، fun = mean)

يتم تحميل الكثير من الافتراضات هناك ، ولكن إذا لم تكن مناسبة تمامًا ، فهناك طرق للحصول على نفس التأثير باستخدام أدوات المكونات في البيانات النقطية. يعتمد تحديد ما إذا كانت R هي الأداة الصحيحة على تفاصيل موقفك ، وهذا صحيح بالنسبة لأي اختيار برمجي.


شاهد الفيديو: Arkadiusz Milik 202021 - Amazing Skills u0026 Goals. HD (شهر اكتوبر 2021).