ulab.utils — כלי עזר של ulab

תת-המודול ulab.utils מספק קבוצה קטנה של כלי עזר הפועלים על אובייקטי numpy.ndarray אך נמצאים מחוץ למשטח הסטנדרטי של NumPy / SciPy. כלי העזר מכווננים לתבניות הזרמה (streaming) הנפוצות ביעדים מוטמעים – חוצצי התקנים היקפיים רחבים מ-16 ביט, וספקטרום עוצמה ללא הקצאות.

ממירי חוצצים

פונקציית numpy.frombuffer() הסטנדרטית מטפלת רק בטיפוסי dtype ש-numpy עצמו מגדיר (uint8, int8, uint16, int16, float). כלי העזר שלהלן מרחיבים כיסוי זה לחוצצי בתים מסוג int16 / uint16 / int32 / uint32 ומחזירים numpy.ndarray מסוג float במעבר אחד.

ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

המרת חוצץ של ערכי int16 ל-numpy.ndarray מסוג float במעבר אחד.

פרמטרים:
  • buffer – חוצץ דמוי-bytes המחזיק את הערכים.

  • count – מספר האיברים לקריאה. -1 קורא את כל החוצץ מ-offset עד הסוף.

  • offset – מספר הבתים לדילוג בתחילת החוצץ.

  • outnumpy.ndarray אופציונלי מסוג float, מוקצה מראש, שאליו ייכתב התוצאה. כאשר מסופק, לא מוקצה מערך חדש.

  • byteswap – היפוך סדר הבתים של כל איבר לפני ההמרה – ההגדרה הנכונה כאשר החוצץ הגיע מהתקן היקפי שכתב בסדר בתים הפוך מזה של ה-CPU של המצלמה.

מחזיר:

numpy.ndarray מסוג float באורך count (או מספר הערכים הזמינים כאשר count הוא -1).

ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

המרת חוצץ של ערכי uint16 ל-numpy.ndarray מסוג float במעבר אחד.

פרמטרים:
  • buffer – חוצץ דמוי-bytes המחזיק את הערכים.

  • count – מספר האיברים לקריאה. -1 קורא את כל החוצץ מ-offset עד הסוף.

  • offset – מספר הבתים לדילוג בתחילת החוצץ.

  • outnumpy.ndarray אופציונלי מסוג float, מוקצה מראש, שאליו ייכתב התוצאה. כאשר מסופק, לא מוקצה מערך חדש.

  • byteswap – היפוך סדר הבתים של כל איבר לפני ההמרה – ההגדרה הנכונה כאשר החוצץ הגיע מהתקן היקפי שכתב בסדר בתים הפוך מזה של ה-CPU של המצלמה.

מחזיר:

numpy.ndarray מסוג float באורך count (או מספר הערכים הזמינים כאשר count הוא -1).

ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

המרת חוצץ של ערכי int32 ל-numpy.ndarray מסוג float במעבר אחד.

פרמטרים:
  • buffer – חוצץ דמוי-bytes המחזיק את הערכים.

  • count – מספר האיברים לקריאה. -1 קורא את כל החוצץ מ-offset עד הסוף.

  • offset – מספר הבתים לדילוג בתחילת החוצץ.

  • outnumpy.ndarray אופציונלי מסוג float, מוקצה מראש, שאליו ייכתב התוצאה. כאשר מסופק, לא מוקצה מערך חדש.

  • byteswap – היפוך סדר הבתים של כל איבר לפני ההמרה – ההגדרה הנכונה כאשר החוצץ הגיע מהתקן היקפי שכתב בסדר בתים הפוך מזה של ה-CPU של המצלמה.

מחזיר:

numpy.ndarray מסוג float באורך count (או מספר הערכים הזמינים כאשר count הוא -1).

ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray

המרת חוצץ של ערכי uint32 ל-numpy.ndarray מסוג float במעבר אחד.

פרמטרים:
  • buffer – חוצץ דמוי-bytes המחזיק את הערכים.

  • count – מספר האיברים לקריאה. -1 קורא את כל החוצץ מ-offset עד הסוף.

  • offset – מספר הבתים לדילוג בתחילת החוצץ.

  • outnumpy.ndarray אופציונלי מסוג float, מוקצה מראש, שאליו ייכתב התוצאה. כאשר מסופק, לא מוקצה מערך חדש.

  • byteswap – היפוך סדר הבתים של כל איבר לפני ההמרה – ההגדרה הנכונה כאשר החוצץ הגיע מהתקן היקפי שכתב בסדר בתים הפוך מזה של ה-CPU של המצלמה.

מחזיר:

numpy.ndarray מסוג float באורך count (או מספר הערכים הזמינים כאשר count הוא -1).

ספקטרוגרמה

ulab.utils.spectrogram(r: numpy.ndarray, imag: numpy.ndarray | None = None, *, scratchpad: numpy.ndarray | None = None, out: numpy.ndarray | None = None, log: bool = False) numpy.ndarray

החזרת העוצמה של התמרת Fourier הבדידה של הקלט, שקולה מבחינה רעיונית ל-np.sqrt(real * real + imag * imag) לאחר קריאה ל-numpy.fft.fft() – מבלי להקצות את החוצצים המתווכים שהצורה המפורשת הייתה מקצה.

פרמטרים:
  • r – החלק הממשי של הקלט כ-numpy.ndarray חד-ממדי מסוג float. אורכו חייב להיות חזקה של שתיים.

  • imag – החלק המדומה האופציונלי של הקלט, באותה צורה כמו r. כאשר מושמט, הקלט נחשב כממשי בלבד.

  • scratchpad – חוצץ עבודה אופציונלי עבור ה-FFT. כאשר מסופק, לא מוקצה מערך עבודה זמני.

  • out – חוצץ יעד אופציונלי, מוקצה מראש, עבור ספקטרום העוצמה. כאשר מסופק, התוצאה נכתבת אליו ישירות.

  • log – כאשר True, מוחזר הלוגריתם הטבעי של העוצמה במקום העוצמה עצמה.

מחזיר:

numpy.ndarray מסוג float באותו אורך כמו r המחזיק את העוצמה (או הלוגריתם שלה) בכל תא תדר.