الهدف من Cheuie هو جعل تنزيل بيانات GEDI بسيطًا قدر الإمكان. يتضمن ذلك المنتجات على مستوى النقطة: 1B و2A و2B و4A. فيما يلي ملخص سريع لاختيارات التصميم التي تمكن {chewie} من تحقيق ذلك:
يتم تنزيل البيانات وتحويلها إلى ملفات باركيه والتي يمكن بعد ذلك قراءتها باستخدام {arrow} وتحويلها إلى كائنات sf. يعد هذا الأسلوب فعالاً لأنه يتطلب فقط تحميل كل حبيبة كاملة في الذاكرة مرة واحدة (عند تحويلها من hdf5 إلى باركيه). من الآن فصاعدًا، يمكننا استخدام أفعال dplyr (أو قاعدة R) filter
البيانات mutate
select
حسب الحاجة دون الحاجة إلى تحميل جميع اللقطات، من حبيبة معينة، إلى الذاكرة.
يتم استخدام ذاكرة التخزين المؤقت على مستوى النظام لتخزين البيانات. وهذا يعني أنه بمجرد تنزيل الملف، لن يتم تنزيله مرة أخرى حتى إذا كنت تعمل في مشروع مختلف (من الممكن أيضًا تحديد موقع ذاكرة تخزين مؤقت فريد لكل مشروع).
هناك دعم للتصفية المكانية للحبيبات التي تتقاطع مع منطقة الاهتمام وليس فقط عن طريق المربع المحيط؛ يؤدي هذا بشكل متكرر إلى تقليل كمية البيانات غير ذات الصلة التي يتم تنزيلها.
يمكنك تثبيت النسخة التطويرية من Cheuee كما يلي:
# install.packages("pak")pak::pkg_install("Permian-Global-Research/chewie")
أولاً، لنقم بالتحميل في بعض المكتبات. {dplyr} ليس ضروريًا ولكن يوصى به لأنه خيار ممتاز وعالي الأداء للعمل مع مجموعات بيانات الأسهم.
مكتبة (تشوي) مكتبة (دبلير) مكتبة (سادس)
فيما يلي بعض الوظائف المساعدة المفيدة لإعداد بيانات الاعتماد الخاصة بك (باستخدام chewie_creds()
) والتحقق من إعداد بيانات الاعتماد وذاكرة التخزين المؤقت بشكل صحيح (باستخدام chewie_health_check()
). بشكل افتراضي، يتم إعداد ذاكرة التخزين المؤقت في مجلد .chewie
في الدليل الرئيسي لديك. يمكنك تغيير هذا عن طريق تشغيل chewie_cache_set()
.
Chewie_creds() # لإعداد بيانات الاعتماد الخاصة بك credentialschewie_health_check() # للتحقق من بيانات الاعتماد الخاصة بك وإعداد ذاكرة التخزين المؤقت.
الآن، دعنا نبحث عن بيانات GEDI 2A التي تتقاطع مع متنزه Prairie Creek Redwoods State Park، كاليفورنيا (مجموعة البيانات مضمنة مع الحزمة). ثم نقوم برسم آثار أقدام الحبيبات التي تتقاطع مع هذه المنطقة للتحقق من ما لدينا. لاحظ أنه بشكل افتراضي، يقوم كل من find_gedi
و grab_gedi
بتخزين مخرجاتهما مؤقتًا، لذلك، عند إعادة تشغيل هذه الوظائف، سيتم تحميل البيانات من ذاكرة التخزين المؤقت بدلاً من تنزيلها مرة أخرى، حتى في جلسة R مختلفة.
prairie_creek <- sf::read_sf(system.file( "geojson"، "prairie-creek.geojson"، package = "chewie"))gedi_2a_search <- find_gedi(prairie_creek, gedi_product = "2A"، date_start = "2023-01 -01"، date_end = "2023-01-31")#> ✔ باستخدام GEDI المخزن مؤقتًا، ابحث عن resultprint(gedi_2a_search)#> #> ── Cheie.find ──────────────── ─────────────────────────────────── ────────── ─────────────────────────────────── ─────────# > • GEDI-2A#> معرف time_start time_end url مخبأ #>#> 1: G2754665065-LPCLOUD 2023-01-25 05:14:31 2023-01- 25 06:47:21 https://data.lpdaac.earthdatacloud.nasa.gov/lp-pro... TRUE#> 1 متغير (متغيرات) غير معروضة: [geometry ]#> #> ─── ─────────────────────────────────── ────────── ─────────────────────────────────── ────────── ─────────────────────────
على الرغم من وجود طريقة plot
لكائنات Cheie.find ، إلا أن البديل الرائع هو رسم خريطة منشورة باستخدام chewie_show
، والتي يمكن أن تكون ثابتة أو تفاعلية (يستخدم هذا {mapview} الرائع أسفل الغطاء).
Cheuee_show (gedi_2a_search، التكبير = 8)
نستخدم الآن grab_gedi
لتنزيل البيانات - تعمل هذه الوظيفة داخليًا على تحويل البيانات إلى تنسيق باركيه وتخزينها في ذاكرة التخزين المؤقت. القيمة التي تم إرجاعها هي كائن Arrow_dplyr_query . يمكننا بعد ذلك استخدام أفعال {dplyr} filter
/ select
البيانات كما نرغب قبل استخدام collect_gedi
أخيرًا لتحويل البيانات إلى كائن sf. إذا لم يتم إجراء أي تصفية/تحديد، فسيقوم collect_gedi
بإرجاع جميع الأعمدة/الصفوف المتاحة لـ AOI.
gedi_2a_sf <- Grab_gedi(gedi_2a_search) |> مرشح (quality_flag == 1، degrade_flag == 0 ) |> حدد (شعاع، وقت_التاريخ، lat_lowestmode، lon_lowestmode، elev_highestreturn، elev_lowestmode، rh0، rh25، rh50، rh75، rh95، rh100 ) |> Collect_gedi(gedi_find = gedi_2a_search)#> ✔ تم العثور على جميع البيانات في ذاكرة التخزين المؤقت(gedi_2a_sf)#> مجموعة ميزات بسيطة تحتوي على 884 ميزة و10 حقول#> نوع الهندسة: POINT#> البعد: XY#> المربع المحيط: xmin: -124.069 ymin: 41.3609 xmax: -123.9959 ymax: 41.43904#> CRS الجيوديسي: WGS 84#> # رعشه: 884 × 11#> وقت الشعاع elev_highestreturn elev_lowestmode rh0 rh25#> *#> 1 0 2023-01-25 06:09:05 -19.6 -23.8 -3.55 -1.12 #> 2 0 2023-01-25 06:09:05 -20.7 -24.2 -3.89 -1.27 #> 3 0 2023-01-25 06:09:05 -20.7 -24.2 -3.93 -1.27 #> 4 0 2023-01-25 06:09:05 -2.29 -23.3 -3.37 -0.0300#> 5 0 2023-01-25 06:09:05 27.7 -15.0 -2.54 9.70 #> 6 0 2023-01-25 06:09:05 35.8 4.55 -3.74 12.1 #> 7 0 2023-01-25 06:09:05 55.9 12.2 -1.57 16.8 # > 8 0 2023-01-25 06:09:05 94.6 41.0 -1.53 25.8 #> 9 0 2023-01-25 06:09:05 95.3 42.5 -3.78 6.06 #> 10 0 2023-01-25 06:09: 05 98.3 33.8 -2.32 29.9 #> # ℹ 874 صفوف أخرى #> # ℹ 5 متغيرات أخرى: rh50 ، rh75 ، rh95 ، rh100 ،#> # الهندسة
وأخيرا، يمكننا رسم البيانات. مرة أخرى يمكننا استخدام وظيفة chewie_show
العامة.
Cheuee_show( gedi_2a_sf، zcol = "rh95"، التكبير = 13، alpha = 0.5، aoi_color = "أبيض")
يوفر gedi-subsetter مجموعة مختارة من أدوات python للاستعلام عن بيانات GEDI وتنزيلها. نطاقه مشابه لـ {chewie} ولكنه يوفر أيضًا وصولاً مباشرًا إلى ملفات hdf5 للشركات التابعة لناسا مع إمكانية الوصول إلى منصة MAAP.
يوفر {rGEDI} القدرة على تنزيل بيانات GEDI ولكنه يوفر أيضًا قدرًا كبيرًا من الوظائف الإضافية للتصور والمعالجة اللاحقة والنمذجة.
{GEDI4R} والذي يوفر بالمثل مجموعة من الأدوات لتنزيل بيانات GEDI وتصورها ونمذجتها، ولكن مع التركيز على منتج 4A.
pyGEDI عبارة عن حزمة Python لتنزيل بيانات GEDI وتصورها.
GEDI-Data-Resources عبارة عن مجموعة من البرامج النصية لكل من python وR التي تقدم أمثلة لكيفية تنزيل بيانات GEDI ومعالجتها.
لقد كانت هذه الموارد مصدرًا رائعًا للإلهام لـ {chewie}؛ نود أن نشكر المؤلفين على عملهم العظيم!