وصف
التبعيات والتثبيت
دليل البدء السريع
الجوائز
نقلا عن PyDMD
مراجع
المطورين والمساهمين
التمويل
الانتماءات
PyDMD عبارة عن حزمة Python مصممة لتحليل الوضع الديناميكي (DMD) ، وهي طريقة تعتمد على البيانات تستخدم لتحليل واستخراج الهياكل المتماسكة الزمانية المكانية من مجموعات البيانات المتغيرة بمرور الوقت. فهو يوفر واجهة شاملة وسهلة الاستخدام لإجراء تحليل DMD، مما يجعله أداة قيمة للباحثين والمهندسين وعلماء البيانات العاملين في مختلف المجالات.
باستخدام PyDMD، يمكن للمستخدمين بسهولة تحليل مجموعات البيانات المعقدة وعالية الأبعاد إلى مجموعة من الأوضاع المكانية والزمانية المتماسكة، والتقاط الديناميكيات الأساسية واستخراج الميزات المهمة. تطبق الحزمة كلاً من خوارزميات DMD القياسية والتنوعات المتقدمة، مما يتيح للمستخدمين اختيار الطريقة الأكثر ملاءمة لاحتياجاتهم الخاصة. تسمح هذه الامتدادات بالتعامل مع البيانات المزعجة أو مجموعة البيانات الكبيرة أو متغيرات التحكم أو فرض الهياكل المادية.
يوفر PyDMD تكاملًا سلسًا مع نظام Python البيئي العلمي، مع الاستفادة من المكتبات الشائعة مثل NumPy وSciPy لإجراء حسابات رقمية فعالة ومعالجة البيانات. كما يقدم أيضًا مجموعة متنوعة من أدوات التصور، بما في ذلك إعادة بناء الوضع، وتحليل طيف الطاقة، وتخطيط تطور الوقت. تمكن هذه القدرات المستخدمين من الحصول على نظرة ثاقبة للأنماط السائدة في النظام، وتحديد الميزات المهمة، وفهم التطور الزمني للديناميكيات.
تعمل PyDMD على تعزيز سهولة الاستخدام والتخصيص، مما يوفر واجهة برمجة تطبيقات موثقة جيدًا مع أسماء وظائف بديهية وأوصاف واضحة للمعلمات. تتم صيانة الحزمة وتحديثها بشكل نشط، مما يضمن التوافق مع أحدث إصدارات Python ودمج تعليقات المستخدمين لتحسين الوظائف والأداء. نحن نقدم العديد من البرامج التعليمية التي توضح خصائص البرنامج. راجع قسم الأمثلة أدناه والبرامج التعليمية للحصول على فكرة عن إمكانات هذه الحزمة. راجع أيضًا الرسم البياني أدناه للحصول على ملخص لجميع الأدوات والوظائف المتاحة. يتم تمثيل المساهمات الجارية حاليًا بمربعات شبه شفافة.
يتوفر PyDMD على PyPI، وبالتالي يمكنك تثبيت أحدث إصدار باستخدام:
> نقطة تثبيت pydmd
لتثبيت الإصدار المتطور، انسخ هذا المستودع باستخدام:
> استنساخ البوابة https://github.com/PyDMD/PyDMD
ثم قم بتثبيت الحزمة في وضع التطوير:
> تثبيت النقطة -e .
تعتمد الميزات الأساسية لـ PyDMD على numpy
و scipy
. من أجل استخدام وظائف الرسم ستحتاج أيضًا إلى matplotlib
.
لتنفيذ DMD، ما عليك سوى البدء بتهيئة وحدة PyDMD التي تنفذ طريقة DMD التي تختارها. يمكن بعد ذلك تركيب النماذج عن طريق استدعاء التابع fit()
وتمرير البيانات الضرورية. تنفذ هذه الخطوة خوارزمية DMD، وبعد ذلك يمكن للمستخدمين استخدام أدوات التخطيط PyDMD لتصور نتائجهم.
من pydmd استيراد DMDfrom pydmd.plotter importplot_summary# أنشئ نموذج DMD دقيقًا باستخدام 12 وضعًا مكانيًا زمانيًا.dmd = DMD(svd_rank=12)# تناسب نموذج DMD.# X = (n, m) مجموعة غير منتظمة من بيانات اللقطة المتغيرة بمرور الوقت .dmd.fit(X)# ارسم ملخصًا للأوضاع الزمانية المكانية الرئيسية.plot_summary(dmd)
يمكن أيضًا تغليف وحدات PyDMD بمعالجات البيانات المسبقة إذا رغبت في ذلك. ستقوم هذه الأغلفة بمعالجة البيانات مسبقًا وإعادة بناء بيانات ما بعد المعالجة تلقائيًا.
من pydmd استيراد DMDمن pydmd.preprocessing import Zero_mean_preprocessing# قم ببناء نموذج DMD دقيق وملاءمته مع data centering.centered_dmd = Zero_mean_preprocessing(DMD(svd_rank=12))centered_dmd.fit(X)
يمكن للمستخدمين أيضًا إنشاء نماذج DMD معقدة للغاية باستخدام PyDMD. فيما يلي مثال لكيفية إنشاء نموذج DMD محسّن وملاءمته مع التعبئة وقيود القيمة الذاتية ووسائط الإسقاط المتغيرة المخصصة.
من pydmd import BOPDMD# أنشئ نموذج تعبئة، نموذج DMD محسّن (BOP-DMD).# للحصول على DMD محسّن (بدون تعبئة)، استخدم BOPDMD(svd_rank=12, num_trials=0).bopdmd = BOPDMD(svd_rank=12, # Rank of DMD fit.num_trials=100، # عدد تجارب التعبئة المطلوب تنفيذها.trial_size=0.5، # استخدم 50% من إجمالي عدد اللقطات لكل تجربة.eig_constraints={"imag"، "conjugate_pairs"}، # يجب أن تكون القيم الذاتية خيالية والأزواج المترافقة.varpro_opts_dict={"tol":0.2, "verbose":True}, # اضبط تسامح التقارب واستخدم التحديثات المطولة.)# تناسب نموذج BOP-DMD.# X = (n, m) مصفوفة زمنية غير منتظمة - بيانات لقطة متغيرة # t = (m,) مصفوفة numpy لأوقات جمع البياناتbopdmd.fit(X, t)
قد يتم تحديد معلمات وحدات ووظائف PyDMD من خلال مجموعة متنوعة من المدخلات للتخصيص الإضافي، لذلك نوصي عمومًا بأن يقوم المستخدمون الجدد بالرجوع إلى وثائقنا، بالإضافة إلى البرامج التعليمية الخاصة بالوحدة للحصول على مزيد من الأمثلة والمعلومات.
يتوفر أيضًا أدناه مثال لاستدعاء الدالة plot_summary()
عند إعطاء نموذج DMD مُجهز للتدفق المتوسط المتمركز بعد بيانات الأسطوانة المتوفرة في dmdbook.com/DATA.zip . تم استخدام نموذج DMD الدقيق من المرتبة 12 لإنشاء هذا الرقم. يتم ترميز القيم الذاتية والأوضاع والديناميكيات بالألوان للإشارة إلى الارتباطات. تشير أحجام علامة القيمة الذاتية أيضًا إلى سعة أو أهمية الوضع الزماني المكاني.
يمكن العثور على وثائق أداة التخطيط هنا.
من pydmd.plotter قم باستيرادplot_summaryplot_summary(dmd, # <-- نموذج PyDMD المجهز. يمكن أن يكون DMD، BOPDMD، إلخ.figsize=(12, 7),index_modes=(0, 2, 4),snapshots_shape=(449, 199) ، النظام = "F"، mode_cmap = "الزلزالي"،dynamics_color = "ك"،flip_continious_axes = صحيح،max_sval_plot = 30، )
نموذج لإخراج الدالةplot_summary.
بالنسبة للمستخدمين الذين ليسوا متأكدين من طريقة DMD الأفضل بالنسبة لهم، فإننا نقدم مخطط التدفق التالي، الذي يوضح كيفية اختيار متغير DMD مناسب استنادًا إلى أنواع مشاكل أو مجموعات بيانات محددة.
الفائز بالجائزة الأولى في مسابقة DSWeb 2019 التعليمية على برامج الأنظمة الديناميكية (فئة أعضاء هيئة التدريس المبتدئين). يمكنك قراءة البرنامج التعليمي الفائز (بتنسيق PDF) في مجلد البرامج التعليمية.
عند الاستشهاد بـ PyDMD، يرجى ذكر كلا المراجع التالية:
ديمو، تيزيل، روزا. PyDMD: تحليل الوضع الديناميكي لبيثون . مجلة البرمجيات مفتوحة المصدر، 2018. [DOI][bibitem]
إيتشيناجا، أندروزي، ديمو، تيزيل، لابو، روزا، برونتون، كوتز. PyDMD: حزمة Python لتحليل الوضع الديناميكي القوي . النسخة الأولية من arXiv، 2024. [arXiv]
لتنفيذ الإصدارات المختلفة من خوارزمية DMD نتبع الأعمال التالية:
كوتز، برونتون، برونتون، بروكتور. تحليل الوضع الديناميكي: النمذجة المستندة إلى البيانات للأنظمة المعقدة . SIAM عناوين أخرى في الرياضيات التطبيقية، 2016. [DOI] [bibitem].
شميد. تحليل الوضع الديناميكي للبيانات العددية والتجريبية . مجلة ميكانيكا الموائع، 2010. [DOI] [bibitem]
تو، رولي، لوتشتنبورغ، برونتون، كوتز. في تحليل الوضع الديناميكي: النظرية والتطبيقات . مجلة الديناميكيات الحسابية، 2014. [DOI] [bibitem]
شميد. تحليل الوضع الديناميكي ومتغيراته . المراجعة السنوية لميكانيكا الموائع، 2022. [DOI][bibitem]
DMD للأمام والخلف: داوسون، هيماتي، ويليامز، رولي. توصيف وتصحيح تأثير ضجيج المستشعر في الوضع الديناميكي للتحلل . تجارب في السوائل، 2016. [DOI] [bibitem].
إجمالي المربعات الصغرى DMD: Hemati، Rowley، Deem، Cattafesta. إزالة انحياز تحليل الوضع الديناميكي للتحليل الطيفي المطبق لكوبمان لمجموعات البيانات الصاخبة . ديناميكيات الموائع النظرية والحسابية، 2017. [DOI] [bibitem].
DMD الأمثل ذو الشكل المغلق: Héas، Herzet. تحليل الوضع الديناميكي منخفض الرتبة: حل دقيق وقابل للتتبع . مجلة العلوم غير الخطية، 2022. [DOI] [bibitem].
الفضاء الفرعي DMD: تاكيشي، كاواهارا، ييري. تحليل الوضع الديناميكي للفضاء الفرعي لتحليل كوبمان العشوائي . المراجعة الفيزيائية E، 2017. [DOI] [bibitem].
DMD المطلع على الفيزياء: Baddoo، Herrmann، McKeon، Kutz، Brunton. تحليل الوضع الديناميكي المستنيرة بالفيزياء . وقائع الجمعية الملكية أ، 2023. [DOI] [bibitem].
DMD الأمثل: Askham، Kutz. طرق الإسقاط المتغيرة لتحليل الوضع الديناميكي الأمثل . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2018. [DOI] [bibitem].
التعبئة، DMD الأمثل: ساشيدهار، كوتز. التعبئة، وتحلل الوضع الديناميكي الأمثل للتنبؤ القوي والمستقر مع القياس الكمي لعدم اليقين المكاني والزماني . وقائع الجمعية الملكية أ، 2022. [DOI] [bibitem].
DMD مع التحكم: بروكتور، برونتون، كوتز. تحليل الوضع الديناميكي مع التحكم . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2016. [DOI] [bibitem].
Multiresolution DMD: كوتز، فو، برونتون. تحليل الوضع الديناميكي متعدد الدقة . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2016. [DOI] [bibitem].
DMD المعزز للتناثر: يوفانوفيتش، شميد، نيكولز تحلل الوضع الديناميكي المعزز للتناثر . فيزياء السوائل، 2014. [DOI] [bibitem].
DMD مضغوط: إريكسون، برونتون، كوتز. تحليل الوضع الديناميكي المضغوط لنمذجة الخلفية . مجلة معالجة الصور في الوقت الحقيقي، 2016. [DOI] [bibitem].
DMD العشوائية: إريكسون، ماثيلين، كوتز، برونتون. تحليل الوضع الديناميكي العشوائي . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2019. [DOI] [bibitem].
النظام العالي DMD: Le Clainche، Vega. تحليل الوضع الديناميكي ذو الترتيب العالي . مجلة الأنظمة الديناميكية التطبيقية، 2017. [DOI] [bibitem].
هافوك: برونتون، برونتون، بروكتور، كايزر، كوتز. الفوضى كنظام خطي قسري بشكل متقطع . اتصالات الطبيعة، 2017. [DOI] [bibitem].
DMD البارامترية: أندريوزي، ديمو، روزا. امتداد تحليل الوضع الديناميكي للتنبؤ بالأنظمة الديناميكية البارامترية . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2023. [DOI] [bibitem].
DMD الممتد: ويليامز، رولي، كيفريكيديس. طريقة قائمة على النواة لتحليل كوبمان الطيفي المبني على البيانات . مجلة الديناميكيات الحسابية، 2015. [DOI] [bibitem].
لاندو: بادو، هيرمان، ماكيون، برونتون. تعلم النواة لتحليل الوضع الديناميكي القوي: تحسين توضيح الغموض الخطي وغير الخطي . وقائع الجمعية الملكية أ، 2022. [DOI] [bibitem].
DMD مع التمركز: هيرش، هاريس، كوتز، برونتون. يؤدي توسيط البيانات إلى تحسين تحليل الوضع الديناميكي . مجلة SIAM حول الأنظمة الديناميكية التطبيقية، 2020. [DOI] [bibitem]
جافيش، دونوهو. الحد الأقصى الأمثل للقيم المفردة هو 4/sqrt(3) . معاملات IEEE على نظرية المعلومات، 2014. [DOI] [bibitem].
ماتسوموتو، إندينغر. خوارزمية سريعة لتحليل الوضع الديناميكي باستخدام تحليل القيمة المفردة المتزايدة وإجمالي المربعات الصغرى . 2017. [أرخايف] [بيبيتم].
يمكنك العثور على قائمة بالأعمال العلمية باستخدام PyDMD هنا.
المطورين الرئيسيين هم
نشكر بحرارة جميع المساهمين الذين دعموا PyDMD!
هل تريد الانضمام للفريق؟ اقرأ إرشادات المساهمة والبرامج التعليمية للمطورين قبل البدء في اللعب!
مصنوعة من contrib.rocks.
نستخدم pytest
لإجراء اختبارات الوحدة الخاصة بنا. استخدم الأمر التالي لتثبيت التبعيات المطلوبة لاختبار نسخة محلية من PyDMD (بافتراض أن المسار النسبي للمستودع هو ./PyDMD/
):
بيثون -m تثبيت النقطة PyDMD/[اختبار]
يمكنك تشغيل مجموعة الاختبار بأكملها باستخدام الأمر التالي في الدليل الأساسي للمستودع:
بايثون -m pytest
تمت كتابة جزء كبير من PyDMD إما كمنتج ثانوي لمشاريع أخرى تم تمويل الأشخاص لها، أو من قبل أشخاص في مناصب تمولها الجامعة. من المحتمل أن يكون هناك العديد من هذه المشاريع التي أدت إلى بعض التطوير لـ PyDMD. نحن ممتنون جدًا لهذا الدعم!
علاوة على ذلك، تم دعم PyDMD أيضًا من خلال بعض المشاريع المخصصة التي أتاحت لنا العمل على التوسعات والتوثيق والتدريب والنشر التي لم يكن من الممكن تحقيقها لولا ذلك. وعلى وجه الخصوص، نعترف بمصادر الدعم التالية مع عظيم الامتنان:
H2020 ERC CoG 2015 مشروع AROMA-CFD 681447، أستاذ PI جيانلويجي روزا في SISSA mathLab.
مشروع FSE HEaD لتحسين شكل القوس المنتفخ من خلال نمذجة الطلب المخفض، FVG، إيطاليا.