{"id":83,"date":"2013-02-11T08:55:44","date_gmt":"2013-02-11T08:55:44","guid":{"rendered":"http:\/\/oneteamgis.wordpress.com\/?p=83"},"modified":"2013-02-11T08:55:44","modified_gmt":"2013-02-11T08:55:44","slug":"cosa-sono-le-python-toolbox","status":"publish","type":"post","link":"https:\/\/gis.oneteam.it\/index.php\/2013\/02\/11\/cosa-sono-le-python-toolbox\/","title":{"rendered":"Cosa sono le Python Toolbox?"},"content":{"rendered":"<p>Arcgis 10.1 consolida la stretta sinergia con Python, il linguaggio di programmazione e scripting open source adottato da ESRI, in sostituzione del VBA, da ormai da qualche versione.<\/p>\n<p>Le Python Toolboxes ne sono un esempio pratico: in sintesi \u00e8 possibile creare e gestire una Toolbox di ArcGIS esclusivamente via codice, scrivendo i singoli Tools, il codice da eseguire, i parametri di esecuzione e le regole di controllo sui parametri, il tutto in un solo file!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-86 aligncenter\" alt=\"PythonToolbox1\" src=\"https:\/\/gis.oneteam.it\/wp-content\/uploads\/2013\/02\/pythontoolbox1.png?w=300\" width=\"300\" height=\"291\" srcset=\"https:\/\/gis.oneteam.it\/wp-content\/uploads\/2013\/02\/pythontoolbox1.png 401w, https:\/\/gis.oneteam.it\/wp-content\/uploads\/2013\/02\/pythontoolbox1-300x292.png 300w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>L&#8217;oggetto, creato direttamente da ArcMap o ArcCtalog, \u00e8 un file .pyt e pu\u00f2 essere eseguito o editato direttamente da ArcGIS: essendo un unico file \u00e8 di pi\u00f9 facile gestione rispetto ad uno Script tradizionale, e soprattutto \u00e8 di immediata condivisione.<\/p>\n<p>Questo \u00e8 il codice che troverete compilato di Default all&#8217;interno di una nuova Python Toolbox:<\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport arcpy\nclass Toolbox(object):\n def __init__(self):\n &amp;quot;&amp;quot;&amp;quot;Define the toolbox (the name of the toolbox is the name of the\n .pyt file).&amp;quot;&amp;quot;&amp;quot;\n self.label = &amp;quot;Toolbox&amp;quot;\n self.alias = &amp;quot;&amp;quot;\n\n# List of tool classes associated with this toolbox\n self.tools = &#x5B;Tool]\nclass Tool(object):\n def __init__(self):\n &amp;quot;&amp;quot;&amp;quot;Define the tool (tool name is the name of the class).&amp;quot;&amp;quot;&amp;quot;\n self.label = &amp;quot;Tool&amp;quot;\n self.description = &amp;quot;&amp;quot;\n self.canRunInBackground = False\n\ndef getParameterInfo(self):\n &amp;quot;&amp;quot;&amp;quot;Define parameter definitions&amp;quot;&amp;quot;&amp;quot;\n params = None\n return params\n\ndef isLicensed(self):\n &amp;quot;&amp;quot;&amp;quot;Set whether tool is licensed to execute.&amp;quot;&amp;quot;&amp;quot;\n return True\n\ndef updateParameters(self, parameters):\n &amp;quot;&amp;quot;&amp;quot;Modify the values and properties of parameters before internal\n validation is performed. This method is called whenever a parameter\n has been changed.&amp;quot;&amp;quot;&amp;quot;\n return\n\ndef updateMessages(self, parameters):\n &amp;quot;&amp;quot;&amp;quot;Modify the messages created by internal validation for each tool\n parameter. This method is called after internal validation.&amp;quot;&amp;quot;&amp;quot;\n return\n\ndef execute(self, parameters, messages):\n &amp;quot;&amp;quot;&amp;quot;The source code of the tool.&amp;quot;&amp;quot;&amp;quot;\n return\n<\/pre>\n<p>Un Post molto utile di ESRI mostra anche come <a href=\"http:\/\/blogs.esri.com\/esri\/arcgis\/2012\/12\/14\/how-to-debug-python-toolboxes-in-3-easy-steps\/\" target=\"_blank\">gestire correttamente il debug <\/a>di una Python Toolbox, inserendo una funzione &#8220;main&#8221; che controlla i comandi di esecuzione.<\/p>\n<p>One Team organizza per il prossimo <strong>20 Febbraio 2013<\/strong> un corso di introduzione dedicato proprio a Python, rivolto ad utenti GIS piuttosto che a dei veri e propri sviluppatori.<\/p>\n<p>Nel programma gi\u00e0 fitto della giornata ci sar\u00e0 anche un piccolo spazio dedicato alle nuove Python Toolboxes, poich\u00e8 introducono un nuovo e pi\u00f9 pratico metodo di lavoro.<\/p>\n<p>Per info e costi consulta la pagina dedicata alla <a href=\"http:\/\/www.oneteam.it\/Macroaree\/macroareaTipo1.aspx?areaCorrente=304\">Formazione a Calendario<\/a>\u00a0oppure scrivici a\u00a0<a href=\"mailto:gis@oneteam.it\">gis@oneteam.it<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Arcgis 10.1 consolida la stretta sinergia con Python, il linguaggio di programmazione e scripting open source adottato da ESRI, in sostituzione del VBA, da ormai da qualche versione. Le Python Toolboxes ne sono un esempio pratico: in sintesi \u00e8 possibile creare e gestire una Toolbox di ArcGIS esclusivamente via codice, scrivendo i singoli Tools, il&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[70,155,161,203,470,582],"class_list":["post-83","post","type-post","status-publish","format-standard","hentry","category-arcgis-for-desktop","tag-arcgis","tag-codice","tag-comandi","tag-debug","tag-python","tag-toolbox"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":0,"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/posts\/83\/revisions"}],"wp:attachment":[{"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/media?parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/categories?post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gis.oneteam.it\/index.php\/wp-json\/wp\/v2\/tags?post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}