יותר

QGIS 2.4 קורס כאשר מסמל את QgsComposerShape ב- Python עם ScriptRunner


אני מנסה להשתמש ב- ScriptRunner כדי להפיק JPEG של מלבן אדום באמצעות QGIS Composer כדי להבין את QgsComposerShape. הכל עובד חוץ מ- QGIS קורס בעת החלת הסמל. תמונת הפלט הופקה כהלכה אך QGIS קורס. אם אני מסיר את חלק הסמל של הקוד הוא מצייר את קווי המתאר של המלבן ולא מתרסק. אם אני מריץ את אותו הקוד שורה אחר שורה במסוף הפיתון של QGIS הכל עובד בלי לקרוס.

אני פשוט לא מבין מדוע השימוש בתוסף ScriptRunner גורם לקריסה. במבט סביב GIS-SE אני לא יכול למצוא את הבעיה המדויקת הזו, אך נראה שיש בעיות אחרות עם תוספים וסמלים. האם יש פיתרון כלשהו לבעיה זו?

הנה התסריט ScriptRunner. השכבה אינה מעובדת, אך אתה צריך מעבד מפה כדי להשתמש באובייקט הצורה:

מ- PyQt4.QtCore ייבוא ​​* מ- PyQt4.QtGui ייבוא ​​* מ qgis.core יבוא * מ qgis.gui ייבוא ​​* def run_script (iface): "" "הדפס מפה פשוטה עם מלבן" "" lyr = QgsVectorLayer ("/ משתמשים /joellawhead/qgis_data/ms/Mississippi.shp "," Mississippi "," ogr ") reg = QgsMapLayerRegistry.instance () reg.addMapLayer (lyr) c = QgsComposition (iface.mapCanvas (). mapRenderer ()) c.setPlotStyle (QgsComposition.Print) c.setPaperSize (215.9, 279.4) w, h = c.paperWidth (), c.paperHeight () x = 0 y = ((h * .2) * -1) / 2 composerMap = QgsComposerMap ( c, x, y, w, h) c.addItem (composerMap) dpi = c.printResolution () c.setPrintResolution (dpi) dpmm = dpi / 25.4 רוחב = int (dpmm * c. paperWidth ()) גובה = int ( dpmm * c.paperHeight ()) אדום = {'color': '255,0,0,255', 'color_border': '0,0,255,255'} redsym = QgsFillSymbolV2.createSimple (אדום) צורה 1 = QgsComposerShape (10,50,10 , 25, c) shape1.setShapeType (1) shape1.setUseSymbolV2 (True) shape1.setShapeStyleSymbol (redsym) c.addItem (shape1) # צור תמונת פלט ואותחל אותה לדמיין e = QImage (QSize (רוחב, גובה), QImage.Format_ARGB32) image.setDotsPerMeterX (dpmm * 1000) image.setDotsPerMeterY (dpmm * 1000) image.fill (0) # לדקלם את ההרכב imagePainter = QPainter (image) sourceArea = QRectF (0, 0, c.paperWidth (), c.paperHeight ()) targetArea = QRectF (0, 0, רוחב, גובה) c.render (imagePainter, targetArea, sourceArea) imagePainter.end () image.save ("/ משתמשים / joellawhead / qgis_data / map.jpg ">

זה נגרם על ידי באג ב- QGIS 2.4 (קבוע ל -2.6). ההתרסקות נגרמת כאשר פיתון מנקה את סמל ה- redsym. כדי לעקוף את הבעיה, ודא שה- redsym מאוחסן במקום כלשהו שבו פיתון לא ינקה אותו באופן אוטומטי (למשל, אחסן אותו במשתנה גלובלי).


פשוט בדקתי את התסריט ועובד מצוין גם על ידי ScriptRunner. הדבר היחיד שהיה עלי לשנות לקוד שלעיל היה אתחול מחלקת QgsFillSymbolV2 ;-):

redsym = QgsFillSymbolV2 () redsym.createSimple (אדום)

בכל מקרה, אנחנו הולכים לקבל עוד מהדורה נהדרת ב -31 :)


Основные инструменты¶

QGIS מספק קיצורי מקשים המוגדרים כברירת מחדל עבור תכונות רבות. אתה יכול למצוא אותם בסעיף Главное меню. בנוסף, אפשרות התפריט הגדרות ‣ הגדר קיצורי דרך .. מאפשר לך לשנות את קיצורי המקשים המוגדרים כברירת מחדל ולהוסיף קיצורי מקשים חדשים לתכונות QGIS.

קיצורי דרך איור 1:

הגדר אפשרויות קיצור דרך (Gnome)

התצורה פשוטה מאוד. פשוט בחר תכונה מהרשימה ולחץ על [שינוי], [הגדר אף אחד] אוֹ [הגדר ברירת מחדל]. לאחר שתסיים את התצורה שלך, תוכל לשמור אותה כקובץ XML ולהעמיס אותה להתקנת QGIS אחרת.


תשובה 1 1

תוכל להוריד גרסאות ישנות יותר של QGIS כאן:

עם זאת, 2.18 אינו נתמך עוד. כך שלא יהיו תיקוני באגים נוספים. 3.4 הוא כעת שחרור ה- ltr.

אז ההערה שלי לא הייתה נכונה לגמרי. אתה עדיין יכול להתקין את QGIS 2.18 דרך מתקין OSGeo4W, זה לא יהיה ה- LTR, מכיוון שהוא אינו ה- LTR. אבל אפשר להתקין את זה. אתה רק צריך לבטל את הסימון של "הסתר חבילות מיושנות":

מצטער, אבל זה לא עובד בשבילי. אני צריך התקנת Osgeo4W64 מלאה עם 2.18 כ- ltr.


מודול C ++ מתרסק בבלנדר אך לא בקונסולת הפיתון [סגור]

רוצה לשפר את השאלה הזו? עדכן את השאלה כך ש- Blender Stack Exchange יהיה בנושא זה.

הכנתי מודול Python C ++ לייעול נתיב המצלמה. האלגברה הליניארית נעשית באמצעות ספריית Eigen והידור עבור Python עם pybind11.

אני משתמש במודל המצלמה שלי לחישובים.

זה עבד טוב עד שהגעתי למצב בו ניסיתי לבצע את האופטימיזציה. המודול אינו מסתמך על שיחות כלשהן ל- API של בלנדר כך שניתן להשתמש בו גם עם פייתון טהור. אני פשוט משתמש בבלנדר כדי להגדיר את נתיב המצלמה וכן הלאה. בקונסולת Anaconda Python הוא פועל ללא בעיות אבל כשאני קורא לו בבלנדר, זה תמיד קורס לקרוס בלנדר לחלוטין.

הסתכלתי ביומן הריסוקים, אבל לא ממש יכול להבין את זה. אני חושד שהקו הזה ./blender(_ZN5Eigen8IOFormatD1Ev+0xd3) [0x2041673] הוא האשם, כי יכול להיות שזה קשור לספריית Eigen וליישור הזיכרון, אבל אני לא בטוח כי זה בדרך כלל עובד בפייתון.

האם למישהו יש מושג מדוע זה קורה? מישהו יכול לעזור לי להבין את היומן?

סקריפט (optFlowCam הוא המודול שלי)

עם faulthandler.enable (), אני מבין

אז זה בהחלט נושא זיכרון כלשהו.

המודול נערך עבור Python 3.7. קונסולת האנקונדה משתמשת בפייתון 3.7.5 ובלנדר משתמש ב 3.7.4. קוד המודול ארוך (קבצים מרובים) ואינו זמין לציבור. אני מעתיק את המודול המהולל לתיקיה & ltblender גרסה & gt / python / lib / python3.7 כדי לטעון אותו.


QGIS להיסטוריה וארכיאולוגיה

אני משתמש ב- QGIS במשך זמן מה לניתוח האזור המקומי שלי למאפיינים היסטוריים וארכיאולוגיים מטעם החברה ההיסטורית המקומית שלי. עם זאת, אני מודע לכך שאני רק מגרד את פני השטח של התכונות ש- QGIS מספק. האם יש למישהו מקרה שימוש חדשני של QGIS לסוג כזה?

נתוני LIDAR המיובאים של דגם השטח הדיגיטלי (DTM) המיועדים לחיפוש אחר תכונות נסתרות בנוף, לא ניכרים מיד בתמונות לוויניות.

הוספה רמפה צבעונית שנמתחה כך שתתאים לטופולוגיה של האזור שאני מעוניין בו.

הוסיף שכבת צל על מנת להפוך את השטח לברור יותר.

גיאוגרפיה הפנתה לכמה מפות ישנות, כולל מפות שאינן בקנה מידה מצוירות ביד, כדי לזהות אילו תכונות מודרניות הן מסתדרות.

ייצאו חלקים מהדגם למודל הניתן לצפייה בדפדפן תלת ממדי, באמצעות התוסף qgis2threejs. זה כולל את תכונת המטוס המותאמת אישית, כדי לאפשר לי לשטוף וירטואלי כמה תכונות מים שהתנקזו מזמן.

הוספת שכבות ממפות אינטרנט (WMS, WFS, TMS ו- WMTS) למודל שלי.

זה כלי מצוין ואני מגלה עליו יותר מדי יום. בשביל מה עוד משתמשים היסטוריונים וארכיאולוגים ב- QGIS?

היי! אני גם ארכיאולוג ומרצה באוניברסיטת מרכז פלורידה. אני משתמש ב- QGIS לכל עבודתי והוראתי. אני יוצר סדרת הדרכה בשם QGIS 4 Arch בכתובת https://www.youtube.com/playlist?list=PLqiB3IIUNAnU8vPcuea6A9pB7Y_qQBH1u אני מקווה שזה יעזור. אני אעלה סרטונים חדשים בשבועות הקרובים, לאחר שאסכם עבודת שטח.

עשיתי כמה הדרכות אלה כעת. הם מצוינים. זה מילא עבורי מספר פערים. אני אוהב במיוחד לייבא CSV של ממצאים ארכיאולוגיים עם קואורדינטות ואז לצבוע את הסמנים לפי תקופות. יש שם כמה דברים שמעולם לא הסתדרתי לעצמי מזה מיליון שנה.

המשך בעבודה הנהדרת. אני מנוי.

בתור ארכיאולוג עמית, תודה רבה לך על זה. האם בעיה עם DM לפעמים אם יש לי שאלה או שאלות לגבי Qgis?

אני ארכיאולוג ואנליסט GIS מארה"ב, ורציתי לדבר עם משהו קצת אחר. אני רואה אותך מבריטניה ותמיד נראה שארכיאולוגיה ציבורית / חובבנית נתפסת קצת אחרת שם מאשר בארה"ב, כך שמה שאני עומד לומר אולי לא חל עליך באופן חוקי אבל אולי מבחינה אתית.

במילים פשוטות: הקפידו על אבטחת נתונים. דעו למי ואיפה הולכים להפיץ את המוצרים שלכם.

יש לנו בעיה משמעותית עם בזזת אתרים באזורים רבים בארה"ב, אנשים נכנסים וחופרים אתרים כדי שיוכלו למכור חפצים בשוק השחור (או בשוק הפשפשים). זה הורס את הערך המדעי של אותם אתרים וגוזל מהציבור בכללותו את המידע שהם עשויים להכיל. ישנם חוקים פדרליים בארה"ב המגנים על מיקום אתרים ארכיאולוגיים מפני הפצה רחבה ומגנים על מיקומי אתרים ארכיאולוגיים מפני בקשות מידע. במדינות רבות יש תקנות דומות לגבי אדמותיהן. אדמה פרטית היא אדמה פרטית ובאופן כללי אתה יכול לעשות מה שאתה רוצה אלא אם כן שרידים אנושיים יהיו מעורבים, אך רוב הארכיאולוגים לא מפיצים נתונים באופן עצמאי מחוץ לבעלי הקרקעות (אשר אז יכולים לעשות מה שהם רוצים).

אני חושב ש- GIS וחישה מרחוק הם כלי מדהים לשימור היסטורי, אך בידיים הלא נכונות זה עלול להזיק מאוד. כשאתה מייצר את המוצרים שלך, זכור רק את ההיבט של הגנה על משאבים אלה.


צפו בסרטון: Tutorial Qgis - Layout (אוֹקְטוֹבֶּר 2021).