יותר

שימוש ב- pymssql ליצירת טבלה באמצעות פייתון ArcMap 10.3

שימוש ב- pymssql ליצירת טבלה באמצעות פייתון ArcMap 10.3


אני משתמש ב- ArcMap 10.3 עם הנתונים שלי במאגר גיאוגרפי (MS SQL Server Express) ואני מנסה לכתוב סקריפט פייתון שעושה חבורה של מניפולציות נתונים מרחביות ולא מרחביות.

אני צריך לזרוק תוצאות לטבלאות לא מרחביות ב- MS SQL Server כדי שאוכל להריץ שאילתות מהן.

עם זאת, לא מצליח לגרום לשאילתת CREATE הטבלה שלי לפעול כראוי. ניסיתי המון וריאציות של השאילתה הזו (למשל לשים dbo וכו ') ללא הועיל.

יבוא arcpy יבוא os # הגדר משתני סביבה עבור pymssql שרת pymssql שרת = os.getenv ("DRAKE  SQLEXPRESS") conn = pymssql.connect (שרת = "DRAKE  SQLEXPRESS", מסד נתונים = "NATA_Data") סמן = חיבור. ) cursor.execute ('CREATE TABLE tempIntersect_withNATA (ZIP varchar (max), Measure varchar (max), HAP varchar (max), Result decimal (35,30))') conn.close ()

נראה ששום דבר לא קורה, אפילו כשאני מדביק אותו בחלון פייתון ArcMap. יצרתי שאילתה פשוטה כגוןcursor.execute ('SELECT * מתוך NATA_All')וזה אכן מתחבר למסד הנתונים שלי ומאחזר נתונים.


כחלופה לpymssql, אולי תשקול להשתמש ב arcpy.ArcSDESQLExecute class לבצע את הצהרות ה- SQL שלך. משהו בסגנון (הצורה הפשוטה ביותר ולא נבדקת):

יבוא arcpy sde = r "חיבורי מסדי נתונים  חיבור ל- SDE.sde" sde_conn = arcpy.ArcSDESQLExecute (sde) sql = "" "צור טבלה tempIntersect_withNATA (ZIP varchar (max), Measure varchar (max), HAP varchar (max ), תוצאה עשרונית (35,30)) "" "sde_return = sde_conn.execute (sql)

פשוט תעשהconn.commit ()וזה יוצר את הטבלה


הדרכה: עבודה עם Python ב- Visual Studio

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

Visual Studio מספק תמיכה בשפה מהשורה הראשונה ב- Python. הדרכה זו מנחה אותך בשלבים הבאים:


מדריכים ב- Wyzant עולים 35 - 60 דולר לשעה בממוצע

מורים המשתמשים ב- Wyzant הם מומחי מקצוע מקצועיים שקובעים מחיר משלהם על סמך הביקוש והמיומנות שלהם.

בחר את המורה שלך

השווה את עלויות המורה. עם מגוון אפשרויות מחיר, יש מורה לכל תקציב.

אין עמלות מראש

הירשם, חפש והודע עם מורים מומחים ללא תשלום.

ללא חבילות יקרות

שלם רק על הזמן שאתה צריך. בין אם זה שיעור אחד או שבעה, אתה מחליט מה להוציא.

שלם לאחר השיעור שלך

קבל קודם כל את העזרה שאתה צריך. תחויב רק לאחר השלמת השיעור.

אוהב את השיעור שלך או את זה & rsquos חינם

דיווחו על ידי כלי חדשות מובילים

מצא מורים מקוונים בנושאים הקשורים ל- ArcGIS.

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


פרמטרים חובבי תהליכים¶

יש לקרוא לפונקציה זו לפני Py_Initialize (), אם היא נקראת בכלל. הוא מציין באיזה קידוד וטיפול בשגיאות להשתמש עם IO סטנדרטי, עם אותן משמעויות כמו ב- str.encode ().

הוא עוקף את ערכי PYTHONIOENCODING ומאפשר הטמעת קוד לשלוט בקידוד IO כאשר משתנה הסביבה אינו פועל.

הַצפָּנָה ו/או שגיאות עשוי להיות אפס לשימוש ב- PYTHONIOENCODING ו/או בערכי ברירת מחדל (תלוי בהגדרות אחרות).

שים לב כי sys.stderr משתמש תמיד במטפל השגיאות "backslashreplace", ללא קשר להגדרה זו (או אחרת).

אם Py_FinalizeEx () נקרא, יהיה צורך לקרוא בפונקציה זו שוב על מנת להשפיע על שיחות עוקבות ל- Py_Initialize ().

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

יש לקרוא לפונקציה זו לפני ש- Py_Initialize () נקרא בפעם הראשונה, אם היא נקראת בכלל. הוא מספר למתורגמן את הערך של הארגומנט argv [0] לפונקציה הראשית () של התוכנית (מומרת לתווים רחבים). זה משמש את Py_GetPath () וכמה פונקציות אחרות להלן כדי למצוא את ספריות זמן ההפעלה של פייתון ביחס למנהל התרגום. ערך ברירת המחדל הוא 'פייתון'. הטענה צריכה להצביע על מחרוזת תווים רחבה עם אפס באחסון סטטי שתכולתה לא תשתנה במהלך ביצוע התוכנית. שום קוד במתורגמן Python לא ישנה את תכולת האחסון הזה.

השתמש ב- Py_DecodeLocale () כדי לפענח מחרוזת בתים כדי לקבל מחרוזת wchar_*.

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

החזר את קידומת עבור קבצים מותקנים שאינם תלויים בפלטפורמה. זה נגזר באמצעות מספר כללים מסובכים משמה התוכנית המוגדר עם Py_SetProgramName () וכמה משתני סביבה למשל, אם שם התוכנית הוא '/usr/local/bin/python', הקידומת היא '/usr/local' . המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. זה מתאים ל קידומת משתנה ב- Makefile ברמה העליונה ובארגומנט-prefix ל להגדיר סקריפט בזמן בנייה. הערך זמין לקוד Python כ- sys.prefix. זה שימושי רק ב- Unix. ראה גם את הפונקציה הבאה.

החזר את קידומת exec לפלטפורמה המותקנת-תלוי קבצים. זה נגזר באמצעות מספר כללים מסובכים משמה התוכנית המוגדר עם Py_SetProgramName () וכמה משתני סביבה למשל, אם שם התוכנית הוא '/usr/local/bin/python', קידומת exec היא '/usr/ מקומי '. המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. זה מתאים ל exec_prefix משתנה ב- Makefile ברמה העליונה ובארגומנט-exec-prefix ל להגדיר סקריפט בזמן בנייה. הערך זמין לקוד Python כ- sys.exec_prefix. זה שימושי רק ב- Unix.

רקע: הקידומת exec שונה מהקידומת כאשר קבצים תלויי פלטפורמה (כגון הפעלה וספריות משותפות) מותקנים בעץ ספריות אחר. בהתקנה טיפוסית, ניתן להתקין קבצים תלויי פלטפורמה בעץ המשנה/usr/local/plat בעוד שניתן להתקין פלטפורמה עצמאית ב-/usr/local.

באופן כללי, פלטפורמה היא שילוב של משפחות חומרה ותוכנה, למשל מכונות Sparc המפעילות את מערכת ההפעלה Solaris 2.x נחשבות לאותה פלטפורמה, אך מכונות אינטל המריצות Solaris 2.x הן פלטפורמה נוספת, ומכונות Intel המריצות לינוקס הן פלטפורמה נוספת. גרסאות גדולות שונות של אותה מערכת הפעלה יוצרות בדרך כלל גם פלטפורמות שונות. מערכות הפעלה שאינן יוניקס הן סיפור אחר, אסטרטגיות ההתקנה במערכות אלה כה שונות עד שהקידומת והקידומת exec חסרות משמעות ומוגדרות למחרוזת הריקה. שים לב שקבצי Bytecode Python המורכבים אינם תלויים בפלטפורמה (אך אינם תלויים בגרסת ה- Python שבאמצעותה נאספו!).

מנהלי מערכות יידעו כיצד להגדיר את הר אוֹ אוטומונט תוכניות לשיתוף/usr/local בין הפלטפורמות תוך/usr/local/plat להיות מערכת קבצים שונה עבור כל פלטפורמה.

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

החזר את נתיב החיפוש של המודול המוגדר כברירת מחדל, והוא מחושב מתוך שם התוכנית (נקבע על ידי Py_SetProgramName () למעלה) ומשתני סביבה מסוימים. המחרוזת המוחזרת מורכבת מסדרה של שמות ספריות המופרדות על ידי תו מפריד תלויי פלטפורמה. התו המפריד הוא ':' ב- Unix ו- Mac OS X ', ב- Windows. המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. את sys.path הרשימה מאתחל עם ערך זה בעת הפעלת מתורגמן ניתן לשנות (ובדרך כלל) מאוחר יותר כדי לשנות את נתיב החיפוש עבור טעינת מודולים.

void Py_SetPath (const wchar_t * ) ¶

הגדר את נתיב החיפוש של מודול ברירת המחדל. אם נקראת פונקציה זו לפני Py_Initialize (), אז Py_GetPath () לא ינסה לחשב נתיב חיפוש ברירת מחדל אלא ישתמש בנתיב שסופק. זה שימושי אם Python מוטמע על ידי יישום שיש לו ידע מלא במיקום כל המודולים. יש להפריד בין רכיבי הנתיב על ידי תו המפריד התלוי בפלטפורמה, שהוא ':' ב- Unix ו- Mac OS X '' ב- Windows.

הדבר גורם גם להגדרת sys.executable לנתיב המלא של התוכנית (ראו Py_GetProgramFullPath ()) וש- sys.prefix ו- sys.exec_prefix יהיו ריקים. על המתקשר לשנות את אלה במידת הצורך לאחר קריאה ל- Py_Initialize ().

השתמש ב- Py_DecodeLocale () כדי לפענח מחרוזת בתים כדי לקבל מחרוזת wchar_*.

ארגומנט הנתיב מועתק פנימית, כך שהמתקשר עשוי לשחרר אותו לאחר השלמת השיחה.

השתנה בגירסה 3.8: הנתיב המלא של התוכנית משמש כעת ל- sys.executable, במקום לשם התוכנית.

החזר את הגרסה של מתורגמן Python זה. זו מחרוזת שנראית בערך

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

const char* Py_GetPlatform () ¶

החזר את מזהה הפלטפורמה עבור הפלטפורמה הנוכחית. ב- Unix, זה נוצר מהשם "הרשמי" של מערכת ההפעלה, המומר לאותיות קטנות, ואחריו מספר הגרסה הגדולה למשל, עבור Solaris 2.x, המכונה גם SunOS 5.x, הערך הוא ' sunos5 '. ב- Mac OS X, זה 'דארווין'. ב- Windows, זה 'ניצחון'. המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. הערך זמין לקוד Python כ- sys.platform.

const char* Py_GetCopyright () ¶

החזר את מחרוזת זכויות היוצרים הרשמית לגרסת Python הנוכחית, למשל

'זכויות יוצרים 1991-1995 Stichting Mathematisch Centrum, אמסטרדם'

המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. הערך זמין לקוד Python כ- sys.copyright.

const char* Py_GetCompiler () ¶

החזר אינדיקציה למהדר המשמש לבניית גרסת ה- Python הנוכחית, בסוגריים מרובעים, למשל:

המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. הערך זמין לקוד Python כחלק מהגירסה sys.version.

const char* Py_GetBuildInfo () ¶

החזר מידע אודות מספר הרצף ותאריך השעה והבנייה של מופע המתורגמן הנוכחי של פייתון, למשל

המחרוזת המוחזרת מצביעה על אחסון סטטי שהמתקשר לא צריך לשנות את ערכו. הערך זמין לקוד Python כחלק מהגירסה sys.version.

void PySys_SetArgvEx (int argc, wchar_t ** argv, int updatepath ) ¶

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

אם updatepath הוא אפס, זה כל מה שהפונקציה עושה. אם updatepath אינו אפס, הפונקציה משנה גם את sys.path בהתאם לאלגוריתם הבא:

אם השם של סקריפט קיים מועבר ב- argv [0], הנתיב המוחלט של הספרייה שבה נמצא הסקריפט מועבר ל- sys.path.

אחרת (כלומר, אם argc הוא 0 או argv [0] אינו מצביע על שם קובץ קיים), מחרוזת ריקה מוקדמת ל- sys.path, וזהה להערכה מראש של ספריית העבודה הנוכחית (& quot. & quot).

השתמש ב- Py_DecodeLocale () כדי לפענח מחרוזת בתים כדי לקבל מחרוזת wchar_*.

מומלץ ליישומים המטמיעים את מתורגמן ה- Python למטרות אחרות מלבד הפעלת סקריפט יחיד 0 updatepath, ועדכן את sys.path עצמם אם תרצה בכך. ראה CVE-2008-5983.

בגרסאות לפני 3.1.3, תוכל להשיג את אותו האפקט על ידי הצצה ידנית של רכיב sys.path הראשון לאחר שהתקשר PySys_SetArgv (), למשל באמצעות:

פונקציה זו פועלת כמו PySys_SetArgvEx () עם updatepath מוגדר ל -1 אלא אם כן פִּיתוֹן המתורגמן התחיל עם ה- -I.

השתמש ב- Py_DecodeLocale () כדי לפענח מחרוזת בתים כדי לקבל מחרוזת wchar_*.

השתנה בגירסה 3.4: ה- updatepath הערך תלוי ב- -I.

הגדר את ספריית "הבית" המוגדרת כברירת מחדל, כלומר את המיקום של ספריות ה- Python הסטנדרטיות. עיינו ב- PYTHONHOME למשמעות מחרוזת הארגומנט.

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

השתמש ב- Py_DecodeLocale () כדי לפענח מחרוזת בתים כדי לקבל מחרוזת wchar_*.

החזר את ברירת המחדל של "הבית", כלומר את הערך שהוגדר על ידי שיחה קודמת ל- Py_SetPythonHome (), או את הערך של משתנה הסביבה PYTHONHOME אם הוא מוגדר.


שיטות

כדי להראות דרך להשתמש בכלים גיאומטיים עם נתוני תרחישי שינוי אקלימי עבודה זו מציגה את התהליך המאפשר לקבל את ממוצע המשקעים החודשי של תרחישי השינוי האקלימי RCP 4.5W/m 2 y RCP 8.5W/m 2 לעתיד הקרוב (2015 -2039) והעתיד הרחוק באזור המחקר, 5 שהתאפשר עקב שילוב היישומים שהוזכרו באיור 1. מצד שני, חשוב לומר שבמקסיקו מתחילים להתפתח תרחישי אקלים אזוריים, תרחישים אלה משתמשים תקופה היסטורית והקרנה של 15 מודלי תפוצה עולמיים לעתיד הקרוב (2015-2039) ולעתיד הרחוק (2075-2099) המשולבים בדוח ההערכה החמישית של IPCC (CICESE, IMTA, CCA-UNAM, INECC). תרחיש של שינוי אקלימי הוא השלכה של עתיד ההתנהגות של האקלים תחזית זו משתמשת באקלים הנוכחי כבסיס ומשנה משתנה כלשהו המתערב בו. 6 תרחישים אלה אינם פרוגנוסטיים אקלימיים כל תרחיש הוא אלטרנטיבה לדעת כיצד זה יכול להיות התנהגות האקלים בעתיד. המשקעים הממוצעים המשמשים בדוגמה זו תואמים תרחישים של דגם REA RCP 4.5W/m 2 ומודל 8.5W/m 2 RCP לעתיד הקרוב והעתיד הרחוק, מידע זה מאורגן על ידי אגן הידרולוגי.

איור 1 אזור לימוד.

קיצור RCP של התרחישים החדשים פירושו: מסלול ריכוז נציג. תרחישים אלה נחלקים לקבוצה רביעית: RCP 2.6, RCP 4.5, RCP 6.0 ו- RCP 8.5, קבוצות אלה מתייחסות לקרינה גלובלית של אנרגיה המתבטאת ב- W/m 2. מידע המשקעים החודשי הממוצע של תרחיש RCP 4.5W/m 2 ותרחיש RCP 8.5W/m 2 של העתיד הקרוב והעתיד הרחוק המשמש בעבודה זו הורדו בדף האינטרנט http://escenarios.inecc.gob.mx/ . 6 ה- INECC מזהה אזורים גיאוגרפיים רביעים במקסיקו לתרחישי שינויי האקלים, כך שנבחר באזור הדרומי בגלל המיקום הגיאוגרפי והאורוגרפיה של אזור המחקר. איור 2 מציג אזורים אלה.

איור 2 אזור לתרחישי השינוי האקלימי.

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

  1. איסוף מידע על תרחישי שינויי אקלים
  2. שילוב מידע בפרויקט GIS
  • זיהוי אזור ההשפעה
  1. יצירת תרחיש אנומליות של משקעים
  2. קבלת הערך הממוצע של תרחיש חריגות המשקעים
  3. סיסטמיזציה של התהליך באמצעות סקריפטים של פייתון

להראות את פירוט המתודולוגיה, מוצג כדוגמה את המידע של ינואר של תרחיש RCP 4.5W/m 2 בעתיד הקרוב (2015-2019). מידע זה נמצא בקובץ עם פורמט netCDF (nc).

    איסוף מידע על תרחישי שינויי אקלים

התהליך מתחיל בהורדת המדדים של המשתנה של אנומליות משקעים של תרחיש החייאה 4.5W/m 2 לעתיד הקרוב (2015-2039) של חודש ינואר. תרחיש זה נוצר על ידי שיטת הממוצע Reliability Ensemble Averaging (REA), המעריכה את מודלי המחזור הגלובליים (GCM) ומשווה אותם עם בסיס הנתונים של יחידת המחקר האקלימי (CRU) לתקופה 1961 עד 2000. 6 המטרה של שיטת REA היא לתת משקל רב יותר לדגמים שיש להם טעויות קטנות ביותר בקשר למאגר המידע CRU, זה מאפשר להמחיש את הביצועים של אותו. ישנם מדדים רביעי: שגיאת ריבוע ממוצעת שורשית (RMSE) המאפשרת לקבוע עד כמה המודל אינו תואם את התצפיות, השגיאה הממוצעת המוחלטת (MAE) המראה אם ​​יש הערכה יתר או הערכת יתר של החישוב, סטיית תקן (STD) איתה וריאציית הנתונים לגבי ממוצעם והתאם (r) המאפשר הדמיה של הדמיון בין הנתונים הנצפים לנתונים המתקבלים על ידי המודל. 6 בהורדה יש ​​צורך להגדיר את תכונות החיפוש (איור 3): משתנה (במקרה זה אנומליות משקעים), סוג הקרנה, תרחיש, תקופה, ילד גרפי, זמן, חודש התחלה, חודש סיום וקואורדינטות אזור המחקר, כתוצאה מכך השיג את קובץ ה- CDF נטו.

המידע שנאסף היה משולב במערכת מידע גיאוגרפית, היישום ArcGIS 10.3 היה בשימוש בעבודה זו, בפרויקט הוסיפו את קובץ הצורה של האגן ולייבוא ​​הנתונים המכילים בקובץ netCDF. מידע אחרון זה השתנה במפות וקטוריות של נקודות באמצעות הכלי הגיאומנטי Make NetCDF, הממוקם בארגז הכלים הרב ממדיים. התצורה הייתה:

  1. קלט קובץ netCDF: תיקיה היכן נמצא קובץ netCDF של תרחיש RCP 4.5W/m 2 בעתיד הקרוב של ינואר.
  2. משתנים: שם השדה ששומר את ערך חריגות המשקעים.
  3. X משתנה Y משתנים: תיאום
  4. שכבת תכונת הפלט: שם קובץ הפלט
  5. ערכי מימד: זמן.

הכלי הגיאומטרי הזה יצר את מפת הנקודות הווקטוריות עם נתוני ינואר בתרחיש הספציפי, לכל נקודה יש ​​מרחק של 50 קילומטרים (איור 4).

איור 4 הפוך את כלי שכבת התכונות של NetCDF ונקודות עם ערכי משקעים של ינואר.

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

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

איור 3 הורד מידע על תרחיש חריגות משקעים.

איור 5 רסטר וטבלה של תרחיש חריגות המשקעים של ינואר.

למטרה זו תוכנן אלגוריתם לשימוש בספריית ArcPy כדי לגשת לכלי ArcGIS, הוא קרא את כיוון התיקייה המכילה את קבצי ה- NC והיא עושה את כל התהליך לכל קובץ. התהליך הכולל מסתיים כאשר מעובד הקובץ האחרון בתיקייה. תרשים הזרימה נמצא באיור 6. התהליך מתחיל עם הגישה לתיקייה שבה נמצאים הקבצים, מספר הקובץ מציין את מספר האיטרציות הכוללות. כל קובץ מכיל נתונים חודשיים, כלומר קיימים לולאות אחרות שחולצות מידע זה. לספריית ArcPy יש גישה לכלים של ArcGIS, זה מאפשר להשתמש בכלים הדרושים כדי להביא את כתב המידע לשקעים חריגים של כל תרחיש בעתיד הקרוב ובעתיד הרחוק. קוד האלגוריתם היה פיתוח ב- IDE PyScripter, IDE זה מאפשר לשלב את מערך ההוראות של השפה עם הפקודות של ספריית ArcPy. סקריפט זה יכול להשתמש בארגז כלים של ArcGIS. היתרון של סקריפט תכנות זה הוא שניתן לבצע אותו בזמן שהם מבצעים תהליכים או יישומים אחרים, רק ישנם אלה שמכניסים את כל קבצי ה- nc לתיקייה ומבצעים את הסקריפט.

איור 6 תרשים זרימה של התהליך.


שימוש ב- pymssql ליצירת טבלה באמצעות פייתון ArcMap 10.3 - מערכות מידע גיאוגרפיות

ניסיון עבודה:

מהנדס תוכנה

סוֹדִי

אחריות:

  • יצר ממשק API של ASP.NET MVC באמצעות ארכיטקטורת REST לחפש ולנהל מכשירים ניידים. שירות אינטרנט מתחבר למסד נתונים של SQL Server 2017 ומנפיק אסימוני אימות. Rest Service קורא גם ל- SOTI MOBI Control API עם בקשות POST.
  • פיתחו יישומי מובייל בפלטפורמת Windows Mobile 6.5 עבור שירות הדואר של ארצות הברית (USPS). פיתח יישום לאבחון תאי סוללה ואיסוף נתונים להערכת תאי כוח LiH במכשירי Honeywell 99EX Dolphin.
  • ממשיכה לשמור על RDBMS מלא של Kendo/UI ו- SQL Server ו- GUI ממשק קצה
  • כותב יישומי Android לתמיכה בפעולות הספק הסלולרי של USPS

מהנדס תוכנה

סוֹדִי

אחריות:

  • לוחות מחוונים מעוצבים באמצעות HTML5, CSS3, JavaScript/AJAX, C# MVC5 ו- SQL Server
  • פיתח יישומי שולחן עבודה ואתרי אינטרנט ב- Visual Studio 2015 IDE ו- C#.NET
  • פותח/מתוחזק לוח מחוונים אינטרנט ויישומי דיווח באמצעות ממשק המשתמש של Kendo
  • שמירה על מסדי נתונים של SQL Server וכותבת נהלים/שאילתות מאוחסנים ב- TSQL
  • פיתחה פתרונות אינטגרציה ושירותי Windows ב- .NET עבור ETL ​​בין שרת SQL לבין אורקל

מהנדס תוכנה

חסוי, קנזינגטון, MD

אחריות:

  • כותב סקריפטים של TSQL והליכים מאוחסנים למשימות ניהול ותחזוקה שוטפות
  • מבצע סקירות קוד של מסד נתונים (TSQL)
  • נוצר טפסי אינטרנט חדשים עם .net Framework 2.0 עם Visual Studio 2005 ו- Team Foundation Server תוך שימוש בכללי עסקים קודמים וקוד VB6 מאחוריו עם חזית ASP.NET וקוד VB.NET
  • מייצר מפות ערך קנקטוגרפיות בעלות ערך מסחרי באיכות גבוהה עם תכונת ArcGIS 10.3 נתונים מונחי נתונים.

האב אנליסט מערכות מידע גיאוגרפיות

חסוי, Chantilly, VA

טכנולוגיות מנוצלות: C#, .NET, SQL Server 2008, SQL Server 2005, ASP.NET 3.5 ועוד

אחריות:

  • נוצר משטחי TIN ומשטחי תלת -ממד באמצעות מסמכי SRTM 1 arc - רזולוציה שנייה.
  • ערכות נתוני רשת בנויות מתוך קבצי פוליליין קו רחוב ומכללי טופולוגיה של רשת מוגדרים.
  • העריכו ומומלצים כלי תוכנה, הרחבות ומודולים של GIS.
  • ביצע ניתוח GIS כולל חיץ, שאילתות מרחביות, דגימת תכונות והתאמה אוטומטית על נתונים מרחביים.
  • כתב תיעוד תמיכה עבור זרימות עבודה מותאמות אישית של ModelBuilder וסקריפטים של פייתון.
  • ביצעו בדיקות קבלה להרחבות ESRI שנכתבו על ידי מפתחי SAIC.

אנליסט מערכות מידע גיאוגרפיות

חסוי, פיירפקס, וירג'יניה

תִכנוּת: PERL CGI, Active Server Pages ו- JavaScript בצד השרת


קשירת הכל ביחד - רשת בינונית/נמוכה

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

  • בתחילה מגדיר את הדגל Enabled על כל תכונות הקצה ל- Yes.
  • מגדיר את הדגל Enabled על כל מחברי ציוד המבודד ל- Yes, למעט מפסקי מעגל, המוגדרים כמס '. הדבר מתבצע באמצעות SQL ישיר.
    • זה מהפך של מודל נתוני הלקוח. נקודת ההתחלה של המעגל היא תמיד מפסק זרם, ואנחנו לא רוצים שהעקבות יעברו דרך המפסק, ולכן אנו משביתים אותם וגורמים לעקוב להיעצר אצל מפסקים.

    שאלות על חיבור קשת למסד הנתונים של גישה

    אז אני אפילו לא בטוח אם מה שאני רוצה לעשות אפשרי. כל הניסיון שלי עם GIS עד כה עסק בשימוש בשרטוטים של CAD ובצורות עיצוב עם שכבות רסטר או מפות בסיס ליצירת הדפסות.
    הבוס שלי שאל אם יש דרך לחבר מסד נתונים של גישה ל- ArcMaps כך שכאשר אנו מכניסים נתונים מהשטח לטאבלט שבו פועל MS Access, הוא מתחבר גם למסד הנתונים המרחבי של GIS (אין לי ניסיון רב בשימוש בקבצים מאגרי גיאוגרפיים או מאגרי גיאוגרפיים אישיים, אך עברתי עליהם את הדרכות הבסיס של חוברות העבודה של ArcGIS). באופן אידיאלי, לאחר מכן נוכל להציג את הנתונים ב- ArcMap ולשאול נתוני סקר באמצעות ניתוח מרחבי. סביר שלנתוני הגישה תהיה טבלה למיקומים (מיקום X, Y) עם נתונים על המתקן, יחוברו לנתוני מלאי. בעולם מושלם זה יתפקד כמפה אינטראקטיבית שאפשר לגשת אליה דרך האינטרנט, ואני יודע של- ESRI היו כל מיני דברים של יישומי אינטרנט, אבל אני לא חושב שיש לי את כישורי ה- CS כדי להשיג זאת.
    מישהו יכול לכוון אותי לכיוון הנכון? אפילו רק מאמרים, פתילים בפורום וכו 'על חיבור Arc ל- Access יעזרו מאוד.
    תודה.

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

    חיבור ל- db גישה אינו מסובך במיוחד. להלן זרימת העבודה מ- ESRI.

    אתה יכול להשתמש בזה כדי להוסיף נתוני xy גם ל- ArcMap ולשמור אותם כבסיס גיאוגרפי. או כאמור, תוכל לעבור על ArcGIS Online ולהגדיר זרימת עבודה ניידת המתעדכנת בזמן אמת מהשטח עם חיבור נתונים/wifi. להלן מאמר מ- ESRI.

    מדהים. תודה על הקישורים.

    ב- ArcGIS, יש פורמט .mdb הנקרא בסיס נתונים גיאוגרפי אישי. מעל לראש שלי, אני יכול להגיד לך שזה או מסד נתונים של גישה שלו או גישה למסד נתונים עם פונקציונליות מרחבית (aka מקבל רשומות עם תכונות מרחביות aka geometry). יש כמה דברים מסובכים כמו עריכת .mdb בגישה יכולה להרוס את סכמת הנתונים/הנתונים.

    אני אומר שאתה צריך לקבוע איזה מסד נתונים מתאים לצרכים שלך. האם יהיו לו מספר משתמשים שיערכו את הנתונים בבת אחת? האם הוא יחיה בשרת או במחשב מקומי?

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

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

    אילו נתונים אתה אוסף, כמו איזה סוג של דיוק מרחבי אתה צריך? אם זה לא כל כך הרבה, אתה יכול לשקול להשתמש באספן ESRI 's שאפשר לגשת אליו עם אפליקציות לנייד/טאבלט והוא ממש קל לשימוש. אין באמת שום קידוד. אתה יכול גם לשמור למי יכולה להיות גישה לחלקים מסוימים של זה.

    אני אבדוק את האספן. מאגר מידע זה ייעשה כדי לסייע למיקומי מלאי הצוות שלנו, נתוני XY שבהם דיוק קיצוני אינו חיוני (מתקנים גדולים שזוהו על ידי תיאום המרכז המשוער). המרכיב המרחבי הוא להוסיף שכבות וקטוריות שניתן להשתמש בהן עם נתוני המתקן לפיתוח שאילתות לניתוח מרחבי (למשל כמה מתקנים ביחידת שירות/מחוז/מרחק של תכונה בעלי נפח גדול מ & quotx & quot של חומר נתון, ו איפה הם) סוג של דבר. הצוות שלנו ישתמש בזה כדי לאכלס את מסד הנתונים, שיימסר לאחר מכן ללקוח בסוף הפרויקט ואולי בזמן שתהליך המלאי פעיל.

    האם תוכל להגדיר את ה- MDB כך שיכיל רק את הנתונים הטבלאיים או שתהיה צורך במרחב (הוספה/עדכון) מרחבי? אני חושב שזה הכי טוב אם אתה יכול להפריד פיזית בין השניים אך לשמור על הצמדה באמצעות PK ו- FK 's. בדרך זו עריכות שדה לעולם לא ישפיעו על המרכיבים המרחבים או האסרי.

    עליך להיות מודע גם לתאימות. פורמט ברירת המחדל של Access הוא .accdb של Arc מתקשים איתו. MDB יהיה הכי קל לעבוד איתו בצד GIS, אך אפשרויות העורך שלך עשויות להיות מוגבלות יותר. שים לב שאם הנתונים המרחבים/טבלאריים שלך מופרדים כאמור לעיל, זו תהיה פחות בעיה מכיוון שההצטרפות ינוהלו עם חיבור OLEDB.


    2 תשובות 2

    יצרת את הטבלה בסכימת SYS (שכדאי לך לעולם לא, אי פעם לעשות. בֶּאֱמֶת, לעולם לא).

    כאשר אתה מתחבר כמורה 1 כל הצהרה מחפשת אובייקטים בסכימה זו. אבל אין טבלה של Teacher1.INSTRUCTORS, כי השם האמיתי הוא SYS.INSTRUCTORS (האם הזכרתי איזה רַע הרעיון שזה ליצור אובייקטים בסכימת SYS?).

    עליך להפעיל את select * של sys.instructors כדי לקבל גישה לטבלה ההיא. אם אינך רוצה להקדים את הסכימה בשם הטבלה, צור מילה נרדפת בסכימה של מורה 1:

    לאחר מכן מורה 1 יכול לגשת לטבלה מסכימת SYS מבלי להכשיר אותה במלואה.

    שוב: הפסק להשתמש בחשבון SYS או SYSTEM לכל דבר שאינו חומר DBA. השתמש בחשבון רגיל בשביל זה.


    מידע תומך

    S1 איור. מיקומי סקרים וייצוג טקסונומי וגיאוגרפי של הנתונים.

    המיקום של כל סקר שנתוניו נכללו בניתוח (A), המוצג בהקרנת שטח גלילית שווה למברט. קוטר הנקודות פרופורציונלי ל- (logה) מספר האתרים שנדגמו בכל סקר והם שקופים ולכן אזורים של צבע אטום מצביעים על נקודות חפיפה. מפת המתאר מבוססת על מפת אגני הנהרות של הבנק העולמי (https://bit.ly/2J86Kbq), המתפרסמת תחת רישיון CC-BY 4.0. המספר הכולל של המינים במערך הנתונים המנותח בקבוצות הטקסונומיות הגדולות (B), ביחס למספר המשוער של המינים המתוארים באותן קבוצות (422). התפלגות האתרים בין ביומות יבשתיות ביחס להתפלגות סך הייצור הראשוני נטו (C). הקו האפור בלוח C מציג את הקשר 1: 1. אותיות בעלילה זו מציינות את הביומות כדלקמן: A, טונדרה B, יערות בוריאליים וטאיגה C, יערות מחטניים ממוזגים D, יערות רחבים ממוזגים ויערובים מעורבים E, שטחי דשא ושטחים F, שטחי דשא ממוזגים, סוואנות ושטחי G, יערות ים תיכוניים. , יערות ושיחים H, מדבריות ויערות קסרי J, שטחי דשא טרופיים וסובטרופיים, סוואנות, ושטחי K, יערות מחטניים טרופיים וסובטרופיים M, יערות עלים יבשים טרופיים וסובטרופיים N, יערות עלים טרופיים וסובטרופיים P, מנגרובים. הנתונים ברמת האתר העומדים בבסיס נתון זה זמינים באופן חופשי (DOI: 10.6084/m9.figshare.7262732).

    S2 איור התאמה בין הערכות RCAR המבוססות על הערכות שונות של גודל הטווח של מינים.

    Estimates of range occupancy derived from records in the GBIF database were gridded at spatial resolutions of 110 km × 110 km, 55 km × 55 km, and 11 km × 11 km (A–C). A measure of range extent (a conceptually different measure of range size compared with the occupancy measure featured in the main text) was also calculated using GBIF records gridded at the same spatial resolutions (D–F). Finally, we extracted range-size estimates from expert-drawn extent-of-occurrence maps for birds, mammals, and amphibians (G–I), the groups whose ranges are best known. The red lines show 1:1 relationships.

    S3 Fig. Effects of proximity to roads, human population density, and length of landscape use by humans on RCAR.

    Separate effects are shown for each land use because interaction terms were significant (all פ & lt 0.05). For clarity, shading shows ±0.5 × standard error rather than the 95% confidence interval. Distance to the nearest road is shown here as the raw values rather than the inverse ‘proximity to road’ shown in Fig 1 The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S4 Fig. Comparison of the effects of human land use on RCAR and on species richness, for individual underlying studies.

    Separate models were fitted for species richness and RCAR as a function of land use. For these models, land use was classified coarsely as either natural (primary or secondary vegetation) or human (plantation forests, croplands, pastures, and urban environments). A random slope of land use nested within study identity was fitted for each model. The random slope coefficients for human land use were extracted as an estimate of the relative strength of effect of human land use on species richness and RCAR within each individual study. The relationship between the estimates for species richness and RCAR are shown here (black points). A linear model was fitted to test the correspondence, showing a significant but weak negative relationship (R 2 = 0.014 פ = 0.008 solid red line = mean fitted relationship dashed red lines = 95% confidence intervals). The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S5 Fig. Sensitivity of the estimated effect of land use on RCAR to variation in quality of underlying range-size estimates.

    Because sample size was much reduced in the most stringent subsets of the data, land use in these models was classified more coarsely than in the main models into primary vegetation, secondary vegetation, and human land uses (combining plantation forests, croplands, pastures, and urban environments). Open triangles show the results based on the complete dataset. Solid triangles of increasing size show results from increasingly stringent subsets of the data, with increasing data quality. Data quality reflected variation in the quality of species’ range-size estimates, and was measured as the estimated inventory completeness of GBIF records for each of 4 taxonomic groups (trachaeophytes, amphibians, mammals, and birds) across different biogeographic regions (combinations of biogeographic realm and biome). Note that inventory completeness is not expected to reach 100% (see Materials and methods, above). Inventory completeness exceeded 25% for only 18% of sites in our dataset. Error bars show 95% confidence intervals. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S6 Fig. Sensitivity of the estimated effect of land use on the abundance of widely and narrowly distributed species to variation in quality of underlying range-size estimates.

    Because sample size was much reduced in the most stringent subsets of the data, land use in these models was classified more coarsely than in the main models, into primary vegetation, secondary vegetation, and human land uses (combining plantation forests, croplands, pastures, and urban environments). Open triangles show the results based on the complete dataset. Solid triangles of increasing size show results from increasingly stringent subsets of the data, with increasing data quality. Data quality reflected variation in the quality of species’ range-size estimates, and was measured as the estimated inventory completeness of GBIF records for each of 4 taxonomic groups (trachaeophytes, amphibians, mammals, and birds) across different biogeographic regions (combinations of biogeographic realm and biome). Note that inventory completeness is not expected to reach 100% (see Materials and methods, above). Inventory completeness exceeded 25% for only 18% of sites in our dataset. Error bars show 95% confidence intervals. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262738).

    S7 Fig. Locations of sites for subsets of the data of increasing stringency in terms of the quality of underlying range-size estimates.

    Data quality reflected variation in the quality of species’ range-size estimates and was measured as the estimated inventory completeness of GBIF records for each of 4 taxonomic groups (trachaeophytes, amphibians, mammals, and birds) across different biogeographic regions (combinations of biogeographic realm and biome). Note that inventory completeness is not expected to reach 100% (see Materials and methods, above). Inventory completeness exceeded 25% for only 18% of sites in our dataset. The outline maps are based on the World Bank map of river basins (https://bit.ly/2J86Kbq), which is published under a CC-BY 4.0 license. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S8 Fig. Effects of land use on RCAR, estimated based on GBIF-based measures of range size gridded at different resolutions.

    Effects of land use and land-use intensity using RCAR based on range occupancy using GBIF records, gridded at a spatial resolution of 110 km × 110 km (A), 55 km × 55 km (B), and 11 km × 11 km (C). Based on range extent using GBIF records at 110 km × 110 km (D), 55 km × 55 km (E), and 11 km × 11 km (F) resolution. Error bars show 95% confidence intervals. Land use was classified into primary vegetation, mature secondary vegetation, intermediate secondary vegetation, young secondary vegetation, plantation forest, cropland, pasture, and urban. Each land-use class was subdivided into 3 levels of human intensity of use—minimal, light, and intense. The plots show the interaction between land use and land-use intensity, with increasing intensity shown toward the right-hand side for each land use. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732). ISV, intermediate secondary vegetation MSV, mature secondary vegetation Plantation, plantation forest Primary, primary vegetation YSV, young secondary vegetation.

    S9 Fig. Spatial autocorrelation in the model residuals.

    A Moran’s I test was applied to the residuals from the final models, dividing the residuals into the individual underlying surveys. The distribution of פ values across the tests for each of the surveys is shown here, for measures of RCAR and RAR based on different underlying estimates of range size—range occupancy based on GBIF records (A and B), range extent based on GBIF records (C and D), range occupancy based on GBIF records for vertebrates (E and F), and range extent based on expert-drawn range maps for vertebrates (G and H) and for measures of average range size both weighted (i.e., RCAR A, C, E, and G) and unweighted (i.e., RAR B, D, F, and H) by species’ recorded abundances. The red line shows פ = 0.05. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S10 Fig. Spatial patterns in the residuals of the final model of RCAR as a function of human pressures.

    A map of each site included in the final model, where point colours represent the value of the model residuals for each site (blue = low red = high), showing no discernible spatial pattern (A). The outline map is based on the World Bank map of river basins (https://bit.ly/2J86Kbq), which is published under a CC-BY 4.0 license. Model residuals for each site as a function of latitude (B). There was no significant relationship between the value of the model residual for a site and either longitude, latitude, or their interaction. The site-level data underlying the models shown here are freely available (DOI: 10.6084/m9.figshare.7262732).

    S1 Table. Statistics explaining geographical variation in the strength of the response of RCAR to human land use.

    Linear models were used to explain the strength of the response of RCAR as a function of variables hypothesized to drive observed tropical-temperate differences. Variables considered were geographic zone (tropical versus temperate) itself, and 3 more refined measures of climatic or topographic variability: temperature seasonality, precipitation seasonality, and the topographic ruggedness index. Both linear and quadratic terms were considered for all of the continuous variables (i.e., all variables except geographic zone). Quadratic terms are denoted in this table by a superscript 2. The final model was obtained by backward stepwise model selection, with the significance of terms assessed using analysis of variance. PS, precipitation seasonality TRI, topographic ruggedness index TS, temperature seasonality.

    S2 Table. Statistics explaining geographical variation in the strength of the response of RAR to human land use.

    Linear models were used to explain the strength of the response of RAR as a function of variables hypothesized to drive observed tropical-temperate differences. Variables considered were geographic zone (tropical versus temperate) itself, and 3 more refined measures of climatic or topographic variability: temperature seasonality, precipitation seasonality, and the topographic ruggedness index. Both linear and quadratic terms were considered for all of the continuous variables (i.e., all variables except geographic zone). Quadratic terms are denoted in this table by a superscript 2. The final model was obtained by backward stepwise model selection, with the significance of terms assessed using analysis of variance. PS, precipitation seasonality TRI, topographic ruggedness index TS, temperature seasonality.

    S3 Table. Definitions of the major land-use classes.

    Each site was classified into one of these classes based on the description of the habitat where the biodiversity sample was taken, as given in the underlying papers from which the biodiversity data were obtained (see S1 Text).

    S4 Table. Criteria used to classify land use and land-use intensity.

    The classification was made based on the description of the habitat given in the underlying papers from which the data were obtained (see S1 Text).


    צפו בסרטון: GIS Python: Count shape files and Select by Location 2 Real world ArcPy examples