<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Buenas,</p>
    <p><br>
    </p>
    <p>Parece que falla a la hora de identificar el crs del fichero prj,
      desconozco el motivo. Que se me ocurran o que sea  un crs muy raro
      o personalizado(que no creo), o que el programa que ha creado esa
      capa no sea luego gdal capaz de leer el fichero prj que genera y
      identificar la proyección (que creo que será esto),  y
      posiblemente se me escape alguna posibilidad<br>
    </p>
    <p><br>
    </p>
    <p>Ahora mismo no se me ocurre mucho más.. prueba a..</p>
    <p>- Al abrir la capa en gvSIG, te identifica correctamente la
      proyección que debería ser de esas capas?</p>
    <p>- Creando una capa con gvSIG en esa misma proyección, y cogiendo
      el fichero prj y sustituirlo por el de las capas que  te han dado,
      a ver si así funciona.</p>
    <p><br>
    </p>
    <p>Por ir probando</p>
    <p><br>
    </p>
    <p>Saludos<br>
    </p>
    <br>
    <div class="moz-cite-prefix">El 30/03/2017 a las 8:53, Ovidio
      Ribeira escribió:<br>
    </div>
    <blockquote
cite="mid:AM5PR0202MB2692089E398FADC4EFF4A31ED7340@AM5PR0202MB2692.eurprd02.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
      <div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;"
        dir="ltr">
        <p>Buenos dias Oscar, utilicé tu script (modificado de
          la siguiente forma ) y me da el error que te indico </p>
        <p>Saludos</p>
        <p><br>
        </p>
        <p>MI SCRIP:</p>
        <p>from gvsig import *<br>
          from gvsig import geom<br>
          from gvsig.libs.formpanel import FormPanel<br>
          from gvsig.libs.formpanel import *<br>
          import sys<br>
          from gvsig import commonsdialog<br>
          from gvsig.commonsdialog import *<br>
          from java.io import File<br>
          from org.jopendocument.dom.template import
          JavaScriptFileTemplate<br>
          from org.jdom import Namespace<br>
          from com.sun.jimi.core import Jimi<br>
          from org.jopendocument.dom import OOUtils<br>
          from gvsig.libs import gvpy<br>
          reload(gvpy)</p>
        <p>def main(*args):</p>
        <p>      option = "Abrir Arquivo"<br>
                fc = commonsdialog.filechooser(option, title="",
          initialPath=None,  multiselection=False, filter = None,
          fileHidingEnabled=True, root=None)<br>
                print "Arquivo elixido:", fc<br>
                crs = esriprj2epsg(fc)<br>
                print crs</p>
        <p><br>
          def esriprj2epsg(fc):<br>
                import os<br>
                from org.gdal import osr<br>
                from java.util import Vector<br>
                if os.path.isdir(fc):<br>
                   raise("Should be a file path")<br>
                else:<br>
                   pre, ext = os.path.splitext(fc)<br>
                   new_extension = ".prj"<br>
                   shapeprj_path = pre + new_extension<br>
                print shapeprj_path<br>
                prj_file = open(shapeprj_path, 'r')<br>
                prj_txt = prj_file.read()<br>
                srs = osr.SpatialReference()<br>
                prj_vector = Vector()<br>
                prj_vector.add(prj_txt)<br>
                srs.ImportFromESRI(prj_vector)<br>
                srs.AutoIdentifyEPSG()<br>
                epsg = "EPSG:"+srs.GetAuthorityCode(None)<br>
                return epsg</p>
        <p><br>
        </p>
        <p>EL ERROR:</p>
        <p>Running script Probagvpy0.<br>
          Arquivo elixido:
          C:\Users\ovelmon\Dropbox\ribadavia\AnaVeloso\Area.shp<br>
          C:\Users\ovelmon\Dropbox\ribadavia\AnaVeloso\Area.prj<br>
          Stript Probagvpy0 aborted.<br>
          java.lang.RuntimeException: java.lang.RuntimeException: OGR
          Error: Unsupported SRS in &lt;script&gt; at line number 24t
          org.python.core.PyFunction.__call__(PyFunction.java:413)<br>
           at org.python.pycode._pyx78.main$1(&lt;script&gt;:29)<br>
           at org.python.pycode._pyx78.call_function(&lt;script&gt;)<br>
           at org.python.core.PyTableCode.call(PyTableCode.java:167)<br>
           at org.python.core.PyBaseCode.call(PyBaseCode.java:308)<br>
           at
          org.python.core.PyFunction.function___call__(PyFunction.java:471)<br>
           at org.python.core.PyFunction.__call__(PyFunction.java:466)<br>
           at org.python.core.PyFunction.__call__(PyFunction.java:456)<br>
           at
org.python.jsr223.MyPyScriptEngine.invokeFunction(MyPyScriptEngine.java:132)<br>
           ... 3 more<br>
          org.gvsig.scripting.ExecuteErrorException:
          java.lang.RuntimeException: java.lang.RuntimeException: OGR
          Error: Unsupported SRS in &lt;script&gt; at line number 24<br>
           at
org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:561)<br>
           at
org.gvsig.scripting.impl.DefaultScriptingScript.run(DefaultScriptingScript.java:531)<br>
           at
org.gvsig.scripting.impl.DefaultScriptingScript$ScriptTask.run(DefaultScriptingScript.java:675)<br>
          Caused by: javax.script.ScriptException:
          java.lang.RuntimeException: java.lang.RuntimeException: OGR
          Error: Unsupported SRS in &lt;script&gt; at line number 24<br>
           at
org.python.jsr223.MyPyScriptEngine.scriptException(MyPyScriptEngine.java:209)<br>
           at
org.python.jsr223.MyPyScriptEngine.invokeFunction(MyPyScriptEngine.java:138)<br>
           at
org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:543)<br>
           ... 2 more<br>
          Caused by: Traceback (most recent call last):<br>
            File "&lt;script&gt;", line 24, in main<br>
            File "&lt;script&gt;", line 61, in esriprj2epsg<br>
           at
          org.gdal.osr.osrJNI.SpatialReference_AutoIdentifyEPSG(Native
          Method)</p>
        <p> at
org.gdal.osr.SpatialReference.AutoIdentifyEPSG(SpatialReference.java:247)</p>
        <p> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
          Method)</p>
        <p> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</p>
        <p> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</p>
        <p> at java.lang.reflect.Method.invoke(Method.java:497)</p>
        <p><br>
          java.lang.RuntimeException: java.lang.RuntimeException: OGR
          Error: Unsupported SRS</p>
        <p> at org.python.core.Py.JavaError(Py.java:548)<br>
           at org.python.core.Py.JavaError(Py.java:539)<br>
           at
org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:188)<br>
           at
org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)<br>
           at org.python.core.PyObject.__call__(PyObject.java:480)<br>
           at org.python.core.PyObject.__call__(PyObject.java:484)<br>
           at org.python.core.PyMethod.__call__(PyMethod.java:126)<br>
           at org.python.pycode._pyx86.esriprj2epsg$2(&lt;script&gt;:63)<br>
           at org.python.pycode._pyx86.call_function(&lt;script&gt;)<br>
           at org.python.core.PyTableCode.call(PyTableCode.java:167)<br>
           at org.python.core.PyBaseCode.call(PyBaseCode.java:139)<br>
           at org.python.core.PyFunction.__call__(PyFunction.java:413)<br>
           at org.python.pycode._pyx86.main$1(&lt;script&gt;:29)<br>
           at org.python.pycode._pyx86.call_function(&lt;script&gt;)<br>
           at org.python.core.PyTableCode.call(PyTableCode.java:167)<br>
           at org.python.core.PyBaseCode.call(PyBaseCode.java:308)<br>
           at or</p>
        <p><br>
        </p>
        <p><br>
        </p>
        <p><br>
        </p>
        <br>
        <br>
        <div style="color: rgb(0, 0, 0);">
          <hr tabindex="-1" style="width: 98%; display: inline-block;">
          <div id="divRplyFwdMsg" dir="ltr"><font style="font-size:
              11pt;" face="Calibri, sans-serif" color="#000000"><b>De:</b>
              <a class="moz-txt-link-abbreviated" href="mailto:gvsig_usuarios-bounces@listserv.gva.es">gvsig_usuarios-bounces@listserv.gva.es</a>
              <a class="moz-txt-link-rfc2396E" href="mailto:gvsig_usuarios-bounces@listserv.gva.es">&lt;gvsig_usuarios-bounces@listserv.gva.es&gt;</a> en nombre
              de Oscar Martinez <a class="moz-txt-link-rfc2396E" href="mailto:omartinez@gvsig.com">&lt;omartinez@gvsig.com&gt;</a><br>
              <b>Enviado:</b> miércoles, 29 de marzo de 2017 15:30<br>
              <b>Para:</b> <a class="moz-txt-link-abbreviated" href="mailto:gvsig_usuarios@listserv.gva.es">gvsig_usuarios@listserv.gva.es</a><br>
              <b>Asunto:</b> Re: [Gvsig_usuarios] Libreria gvpy</font>
            <div> </div>
          </div>
          <div>
            <p>Buenas,</p>
            <p><br>
            </p>
            <p>Pues ahora mismo creo que la librería de scripting no
              está preparada para leer los prj, ya que esto vino en una
              versión más reciente de gvSIG. Lo comentaré y veremos los
              cambios que tenemos que hacer para que cuando no se le
              asigne  un prj lea el del fichero con el que viene..</p>
            <p><br>
            </p>
            <p>Mientras tanto (un trozo de código que tal vez no sea muy
              correcto en la forma de hacerlo...), te he preparado una
              función que lee el prj que esté al lado del fichero shp y
              saca la proyección a la que hace referencia. El parámetro
              de entrada es la ruta al fichero .shp en string. Como
              salida devuelve el crs en formato "EPSG:...." string, el
              cual lo puedes usar ya directamente para asociarle un crs
              a la capa cuando la cargues.</p>
            <p><br>
            </p>
            <p>En tu caso algo así como.. <br>
            </p>
            <p>    crs = esriprj2epsg(fc)<br>
            </p>
            <p>    s1 = loadShapeFile(fc,CRS=crs)</p>
            <br>
            Me la apunto para preguntar lo que tendríamos que cambiar en
            las librerías.<br>
            <br>
            Saludos<br>
            <br>
            <br>
            <a moz-do-not-send="true" class="moz-txt-link-freetext"
              id="LPlnk623544"
              href="https://gist.github.com/oscar9/a92ca47eaaa9ce8904a6722db3cd76b6"
              previewremoved="true">https://gist.github.com/oscar9/a92ca47eaaa9ce8904a6722db3cd76b6</a>
            <div id="LPBorder_GT_14908562441940.18127239350798563"
              style="width: 100%; text-indent: 0px; overflow: auto;
              margin-bottom: 20px; display: inline-block;">
              <table id="LPContainer_14908562441870.27461856316694005"
                role="presentation" style="width: 90%; overflow: auto;
                padding-top: 20px; padding-bottom: 20px; margin-top:
                20px; border-top-color: rgb(200, 200, 200);
                border-bottom-color: rgb(200, 200, 200);
                border-top-width: 1px; border-bottom-width: 1px;
                border-top-style: dotted; border-bottom-style: dotted;
                position: relative; background-color: rgb(255, 255,
                255);" cellspacing="0">
                <tbody>
                  <tr style="border-spacing: 0px;" valign="top">
                    <td id="ImageCell_14908562441870.18439711251066754"
                      style="width: 250px; padding-right: 20px; display:
                      table-cell; position: relative;" colspan="1">
                      <div
                        id="LPImageContainer_14908562441880.8635160167131242"
                        style="margin: auto; width: 250px; height:
                        250px; display: table; position: relative;
                        background-color: rgb(255, 255, 255);">
                        <a moz-do-not-send="true"
                          id="LPImageAnchor_14908562441900.2807018735274678"
                          style="text-align: center; display:
                          table-cell;"
                          href="https://gist.github.com/oscar9/a92ca47eaaa9ce8904a6722db3cd76b6"
                          target="_blank"><img moz-do-not-send="true"
                            id="LPThumbnailImageID_14908562441910.5536375186284164"
                            style="border-width: 0px; width: 250px;
                            height: 250px; vertical-align: bottom;
                            display: inline-block; max-height: 250px;
                            max-width: 250px;" aria-label="Imagen de
                            vista previa con vínculo seleccionado. Pulse
                            dos veces para abrir el vínculo."
                            src="https://avatars0.githubusercontent.com/u/4819782?v=3&amp;s=400"
                            height="250" width="250"></a></div>
                    </td>
                    <td id="TextCell_14908562441910.5975511740858383"
                      style="padding: 0px; vertical-align: top; display:
                      table-cell; position: relative;" colspan="2">
                      <div
                        id="LPRemovePreviewContainer_14908562441910.7281770172903681"
                        style="float: right;">
                      </div>
                      <div id="LPTitle_14908562441910.9821852327850189"
                        style="top: 0px; color: rgb(0, 120, 215);
                        line-height: 21px; font-family:
                        &quot;wf_segoe-ui_light&quot;, &quot;Segoe UI
                        Light&quot;, &quot;Segoe WP Light&quot;,
                        &quot;Segoe UI&quot;, &quot;Segoe WP&quot;,
                        Tahoma, Arial, sans-serif; font-size: 21px;
                        font-weight: 400;">
                        <a moz-do-not-send="true"
                          id="LPUrlAnchor_14908562441920.6203506573272186"
                          style="text-decoration: none;"
                          href="https://gist.github.com/oscar9/a92ca47eaaa9ce8904a6722db3cd76b6"
                          target="_blank">Find crs from a prj file
                          #gvsig</a></div>
                      <div
                        id="LPMetadata_14908562441920.6578308829732562"
                        style="margin: 10px 0px 16px; color: rgb(102,
                        102, 102); line-height: 14px; font-family:
                        &quot;wf_segoe-ui_normal&quot;, &quot;Segoe
                        UI&quot;, &quot;Segoe WP&quot;, Tahoma, Arial,
                        sans-serif; font-size: 14px; font-weight: 400;">
                        gist.github.com</div>
                      <div
                        id="LPDescription_14908562441930.41620468843685726"
                        style="color: rgb(102, 102, 102); line-height:
                        20px; overflow: hidden; font-family:
                        &quot;wf_segoe-ui_normal&quot;, &quot;Segoe
                        UI&quot;, &quot;Segoe WP&quot;, Tahoma, Arial,
                        sans-serif; font-size: 14px; font-weight: 400;
                        display: block; max-height: 100px;">
                        Find crs from a prj file #gvsig</div>
                    </td>
                  </tr>
                </tbody>
              </table>
            </div>
            <br>
            <br>
            <br>
            # encoding: utf-8<br>
            <br>
            import gvsig<br>
            <br>
            def main():<br>
                crs =
            esriprj2epsg("D:/Working/test/Huimilpan_Circles_copia.shp")<br>
                print crs<br>
                <br>
            def esriprj2epsg(shapeprj_path):<br>
               import os<br>
               from org.gdal import osr<br>
               from java.util import Vector<br>
               if os.path.isdir(shapeprj_path):<br>
                  raise("Should be a file path")<br>
               else:<br>
                  pre, ext = os.path.splitext(shapeprj_path)<br>
                  new_extension = ".prj"<br>
                  shapeprj_path = pre + new_extension<br>
               #print shapeprj_path<br>
               prj_file = open(shapeprj_path, 'r')<br>
               prj_txt = prj_file.read()<br>
               srs = osr.SpatialReference()<br>
               prj_vector = Vector()<br>
               prj_vector.add(prj_txt)<br>
               srs.ImportFromESRI(prj_vector)<br>
               srs.AutoIdentifyEPSG()<br>
               epsg = "EPSG:"+srs.GetAuthorityCode(None)<br>
               return epsg<br>
            <br>
            <br>
            <div class="moz-cite-prefix">El 29/03/2017 a las 8:44,
              Ovidio Ribeira escribió:<br>
            </div>
            <blockquote type="cite">
              <div id="divtagdefaultwrapper" style="color: rgb(0, 0, 0);
                font-family: Calibri,Arial,Helvetica,sans-serif;
                font-size: 12pt;" dir="ltr">
                <div>
                  <p style="line-height: 100%; margin-bottom: 0cm;"
                    lang="es-ES">Buenos días y muchas gracias, Oscar.</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"
                    lang="es-ES">Tu ayuda me fue muy util, pero solo una
                    cosa mas:</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"
                    lang="es-ES">Es script que hice carga un fichero
                    “Area.shp” que es el resultado de unha medición de
                    GPS, este fichero es creado por el programa de
                    gestión del GPS, y también crea el fichero
                    “Area.prj” de información de la proyección, yo
                    utilizo la proyección WSG84 pero otros compañeros
                    utilizan otra ( ED50, ETRS, hay de todo) la
                    pregunta: ¿Es posible indicar en el escript que 
                    cargue la capa con el mismo CRS que se indicada en
                    “Area.prj” ( este fichero esta en la misma carpeta
                    que el Area .shp). El codigo de mi escript es el
                    siguiente:</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"
                    lang="es-ES"><br>
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"
                    lang="es-ES">Un saludo</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"><br>
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">def
                    AbreArquivo_click(self,*args):</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">option
                    = "Abrir Arquivo"</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">fc =
                    commonsdialog.filechooser(option, title="",
                    initialPath=None, multiselection=False, filter =
                    None, fileHidingEnabled=True, root=None)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">print
                    "Arquivo elixido:", fc</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">s1 =
                    loadShapeFile(fc,CRS="EPSG:4326")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">currentView().getLayer("Area").setVisible(False)
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">vista
                    = currentView()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">layer
                    =currentView().getLayer("Area")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">vmap
                    = vista.getMap()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">vmap.zoomToEnvelope(layer.getFullEnvelope())</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">#eliminar
                    a capa Area da Vista</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.shp2
                    = gvpy.runalg("gvSIG-reproject", "Area", "false",
                    "EPSG:25829", PATH=[getTempFile("new1",
                    ".shp"),getTempFile("new2",
                    ".shp"),getTempFile("new3", ".shp")],ADDLAYER=False)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"><span>#Cambiarlle
                      o nome a shp2</span></p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.shp2[0].setName("Medicion")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.Medicion
                    = self.shp2[0]</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">#print
                    "capa", shp2</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">currentView().addLayer(self.shp2[0])</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.layers
                    = currentView().getLayers()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.layers.removeLayer("Area")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">     
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.planta
                    = currentView().getLayer("RV_Actualizado")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.planta2
                    = currentView().getLayer("Arrinques")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.Leyenda2
                    = self.planta2.getLegend()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.Leyenda
                    = self.planta.getLegend()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">self.shp2[0].setLegend(self.Leyenda)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;"><br>
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">def
                    Interseccion_click(self,*args):</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">Concello
                    = self.ConSixpac.getText()</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">if
                    Concello == "00":</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">msgbox("Hai
                    que indicar o concello SIXPAC para facer a
                    intersección","AVISO" , 1)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">return</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">else:
                  </p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">CapaInter0
                    = self.CapaSixpac = Concello+"_SIXPAC"</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">CapaInter
                    = currentView().getLayer(CapaInter0)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">print
                    CapaInter</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">print
                    self.Medicion</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">#Interse
                    = gvpy.runalg("intersection", self.Medicion,
                    CapaInter, "#")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">#Interse
                    = gvpy.runalg("gvSIG-intersection", self.Medicion,
                    CapaInter, #, #, #)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">Interse
                    = gvpy.runalg("gvSIG-intersection", self.Medicion,
                    CapaInter, "false", "false",
                    PATH=[getTempFile("new4",
                    ".shp"),getTempFile("new5",
                    ".shp"),getTempFile("new6", ".shp")],ADDLAYER=False)</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">Interse[0].setName("INTER-SIXPAC")</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">currentView().addLayer(Interse[0])</p>
                  <p style="line-height: 100%; margin-bottom: 0cm;">Interse[0].setLegend(self.Leyenda2)</p>
                </div>
                <p><br>
                </p>
                <br>
                <br>
                <div style="color: rgb(0, 0, 0);">
                  <hr tabindex="-1" style="width: 98%; display:
                    inline-block;">
                  <div id="divRplyFwdMsg" dir="ltr"><font
                      style="font-size: 11pt;" face="Calibri,
                      sans-serif" color="#000000"><b>De:</b>
                      <a moz-do-not-send="true"
                        class="moz-txt-link-abbreviated"
                        href="mailto:gvsig_usuarios-bounces@listserv.gva.es">
                        gvsig_usuarios-bounces@listserv.gva.es</a> <a
                        moz-do-not-send="true"
                        class="moz-txt-link-rfc2396E"
                        href="mailto:gvsig_usuarios-bounces@listserv.gva.es">
                        &lt;gvsig_usuarios-bounces@listserv.gva.es&gt;</a>
                      en nombre de Oscar Martinez <a
                        moz-do-not-send="true"
                        class="moz-txt-link-rfc2396E"
                        href="mailto:omartinez@gvsig.com">
                        &lt;omartinez@gvsig.com&gt;</a><br>
                      <b>Enviado:</b> lunes, 27 de marzo de 2017 9:37<br>
                      <b>Para:</b> <a moz-do-not-send="true"
                        class="moz-txt-link-abbreviated"
                        href="mailto:gvsig_usuarios@listserv.gva.es">
                        gvsig_usuarios@listserv.gva.es</a><br>
                      <b>Asunto:</b> Re: [Gvsig_usuarios] Libreria gvpy</font>
                    <div> </div>
                  </div>
                  <div>
                    <p>Buenas!</p>
                    <p><br>
                    </p>
                    <p>Por partes..</p>
                    <p><br>
                    </p>
                    <p>Para eliminar una capa:</p>
                    <p><br>
                    </p>
                    <p>    # Eliminar layer de una Vista<br>
                          # <a moz-do-not-send="true"
                        class="moz-txt-link-freetext" id="LPlnk287481"
href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/layers/FLayers.html"
                        previewremoved="true">
http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/mapcontext/layers/FLayers.html</a><br>
                          layers = currentView().getLayers()<br>
                          layers.removeLayer("nuevacapa") # se puede
                      eliminar por nombre, por indice, etc..<br>
                    </p>
                    <p><br>
                    </p>
                    <p>Si lo que quieres hacer es cambiar el nombre del
                      TOC se haría con:</p>
                    <p>(Añadiendo al final del código del otro día)</p>
                    <p><br>
                    </p>
                    <p>    shp2[0].setName("nueva0")<br>
                          shp2[1].setName("nueva1")<br>
                          shp2[2].setName("nueva2")<br>
                    </p>
                    <br>
                    Si es otra cosa la que quieres cambiar comentamelo.<br>
                    <br>
                    Para añadir una simbologia por intervalos por
                    ejemplo está este script que es sencillo de entender
                    me parece, es para crear una simbologia por
                    intervalos a partir de un campo:<br>
                    <br>
                    <br>
                    # encoding: utf-8<br>
                    <br>
                    from gvsig import *<br>
                    from gvsig import geom<br>
                    from java.awt import Color<br>
                    from
                    org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl
                    import VectorialIntervalLegend<br>
                    <br>
                    def main(*args):<br>
                            """ Create interval legend """<br>
                            # <a moz-do-not-send="true"
                      class="moz-txt-link-freetext" id="LPlnk59311"
href="http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/leyendas.html"
                      previewremoved="true">
http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/leyendas.html</a><br>
                            <br>
                            # Seleccionar el Tipo de geometria<br>
                            # <a moz-do-not-send="true"
                      class="moz-txt-link-freetext" id="LPlnk27055"
href="http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/modulo_geom.html"
                      previewremoved="true">
http://downloads.gvsig.org/download/web/html/es/html/scripting_devel_guide/2.3/modulo_geom.html</a><br>
                            vil = VectorialIntervalLegend(geom.POLYGON)<br>
                    <br>
                            vil.setStartColor(Color.red) # color inicio<br>
                            vil.setEndColor(Color.blue) # color final<br>
                            vil.setIntervalType(1) # Rango<br>
                            store = currentLayer().getFeatureStore() #
                    store de los datos a  aplicar la simbologia<br>
                            ii = vil.calculateIntervals(store, "ID", 5,
                    geom.POLYGON) # Calculo de la simbologia para ese
                    store e intervalos. (store, Campo, numero
                    intervalos, tipo)<br>
                    <br>
                            vil.setIntervals(ii) # aplicamos los
                    intervalos a la simbologia<br>
                    <br>
                            currentLayer().setLegend(vil) # aplicamos la
                    simbologia a la capa<br>
                    <br>
                    Puedes encontrar otro tipo de leyendas e ir
                    probando: <a moz-do-not-send="true"
                      class="moz-txt-link-freetext" id="LPlnk776145"
href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractIntervalLegend.html"
                      previewremoved="true">
http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/symbology/fmap/mapcontext/rendering/legend/impl/AbstractIntervalLegend.html</a><br>
                    <br>
                    Nunca he etiquetado desde scripting.. Tendría que
                    preguntar primero para echarte una mano.<br>
                    <br>
                    Para saber si hay una capa activa hay varias formas,
                    depende para lo que necesites, por lo general esta:<br>
                    <br>
                        layers = currentView().getLayers()<br>
                        print "numero capas activas",
                    len(layers.getActives())<br>
                        print currentLayer()==None<br>
                    <br>
                        if currentLayer()==None:<br>
                            print "no hay capa activa"<br>
                            return<br>
                    <br>
                        currentLayer.setActive(False)<br>
                    <br>
                    Respecto al geoproceso intersección, si cambia el
                    nombre de los campos es porque necesita hacerlo. Si
                    no me equivoco es cuando se duplican el mismo nombre
                    de los campos en las capas entrantes. No hay forma
                    de configurar esto desde fuera. Lo que si que puedes
                    hacer es hacer un script que te extraiga lo que
                    desees de esa capa o editarla.<br>
                    <br>
                    Creo que no me dejo nada. Espero que te sea de
                    ayuda.<br>
                    <br>
                    Saludos,<br>
                    Óscar<br>
                    <br>
                    <div class="moz-cite-prefix">El 27/03/2017 a las
                      8:29, Ovidio Ribeira escribió:<br>
                    </div>
                    <blockquote type="cite">
                      <div id="divtagdefaultwrapper" style="color:
                        rgb(0, 0, 0); font-family:
                        Calibri,Arial,Helvetica,sans-serif; font-size:
                        12pt;" dir="ltr">
                        <div>
                          <p style="line-height: 100%; margin-bottom:
                            0cm;">Buenos días Oscar, gracias por tu
                            ayuda y tu tiempo, con tus explicaciones
                            conseguí lo que quería, pero para mejorar el
                            script so lo me faltaría,: poder eliminar de
                            la TOC una capa que ya no me interesa, lo
                            que hice fue ponerla como no visible,.
                            Tampoco consigo renombrar la capa de salida
                            del geoproceso reproyectar, aquí lo que hago
                            es no añadir ninguna con el geoproceso y
                            despues anadir a la TOC la n.º 0. Me seria
                            bueno poder añadir una simbología y un
                            etiquetado por selección a la nueva capa
                            desde el script. Para seleccionar una capa
                            uso:   currentLayer().setActive(False)  y  
                            s1.setActive(True)  pero si al principio no
                            hay ninguna capa activa me da un error, como
                            se puede saber si hay alguna capa activa. Y
                            por último la capa de salida en el
                            geoproceso intersección cambia el nombre de
                            los campos, hay alguna manera de que no lo
                            haga.</p>
                          <p style="line-height: 100%; margin-bottom:
                            0cm;">Saludos y si puedes la ayudar será muy
                            bien venida .
                          </p>
                          <p style="line-height: 100%; margin-bottom:
                            0cm;"><br>
                          </p>
                        </div>
                        <p><br>
                        </p>
                        <br>
                        <br>
                        <div style="color: rgb(0, 0, 0);">
                          <hr tabindex="-1" style="width: 98%; display:
                            inline-block;">
                          <div id="divRplyFwdMsg" dir="ltr"><font
                              style="font-size: 11pt;" face="Calibri,
                              sans-serif" color="#000000"><b>De:</b>
                              <a moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:gvsig_usuarios-bounces@listserv.gva.es">
                                gvsig_usuarios-bounces@listserv.gva.es</a>
                              <a moz-do-not-send="true"
                                class="moz-txt-link-rfc2396E"
                                href="mailto:gvsig_usuarios-bounces@listserv.gva.es">
&lt;gvsig_usuarios-bounces@listserv.gva.es&gt;</a> en nombre de Oscar
                              Martinez <a moz-do-not-send="true"
                                class="moz-txt-link-rfc2396E"
                                href="mailto:omartinez@gvsig.com">
                                &lt;omartinez@gvsig.com&gt;</a><br>
                              <b>Enviado:</b> viernes, 24 de marzo de
                              2017 14:30<br>
                              <b>Para:</b> <a moz-do-not-send="true"
                                class="moz-txt-link-abbreviated"
                                href="mailto:gvsig_usuarios@listserv.gva.es">
                                gvsig_usuarios@listserv.gva.es</a><br>
                              <b>Asunto:</b> Re: [Gvsig_usuarios]
                              Libreria gvpy</font>
                            <div> </div>
                          </div>
                          <div>
                            <p>Buenas,</p>
                            <p><br>
                            </p>
                            <p>Los algortimos gvSIG-* funcionan de
                              manera algo diferente. Por ahora, siempre
                              que ejecutes uno de estos algoritmos
                              tienes que especificar el path que quieres
                              usar. En gvpy se especifica añadiendo un
                              parámetro PATH. Para esto ya teníamos una
                              función preparada en gvSIG llamada
                              getTempFile("nombre", "extension",
                              "carpeta destino"), siendo el último
                              parámetro opcional. Esto imita el
                              funcionamiento que tienen el resto de
                              geoprocesos.</p>
                            <p><br>
                            </p>
                            <p>También ten en cuenta que este geoproceso
                              reproject especifica y crea tres capas de
                              salida, aunque luego solo vayas a usar
                              una, hay que indicar los paths.</p>
                            <p><br>
                            </p>
                            <p>Te adjunto un ejemplo de todo esto.</p>
                            <p><br>
                            </p>
                            <p>Espero te sirva de ayuda, cualquier cosa
                              nos comentas.</p>
                            <p><br>
                            </p>
                            <p>Saludos</p>
                            <p><br>
                            </p>
                            <p><a moz-do-not-send="true"
                                class="moz-txt-link-freetext"
                                id="LPlnk447514"
                                href="https://gist.github.com/oscar9/43523df6c76056cbde97f4a23f967ffe"
                                previewremoved="true">https://gist.github.com/oscar9/43523df6c76056cbde97f4a23f967ffe</a></p>
                            <p><br>
                            </p>
                            <pre># encoding: utf-8</pre>
                            <pre>import gvsig</pre>
                            <pre>from gvsig import *</pre>
                            <pre>from gvsig.libs import gvpy</pre>
                            <pre>reload(gvpy)</pre>
                            <pre>import os</pre>
                            <pre>def main(*args):</pre>
                            <pre>    </pre>
                            <pre>    gvpy.algHelp("gvSIG-reproject")</pre>
                            <pre>    """</pre>
                            <pre>    * Algorithm help:  Reproyección</pre>
                            <pre>    * Usage: runalg( "gvSIG-reproject",</pre>
                            <pre>                                  LAYER[Vector Layer],</pre>
                            <pre>                                  SELECTED_GEOM[Boolean],</pre>
                            <pre>                                  DST_PROJECTION[String],</pre>
                            <pre>                                  RESULT_POL[output vector layer],</pre>
                            <pre>                                  RESULT_LINE[output vector layer],</pre>
                            <pre>                                  RESULT_POINT[output vector layer],</pre>
                            <pre>                                  );</pre>
                            <pre>    """</pre>
                            <pre>    #Funtion tempfile</pre>
                            <pre>    n1 = getTempFile("new", ".shp")</pre>
                            <pre>    print n1</pre>
                            <pre>    #C:\Users\Versus\AppData\Local\Temp\/tmp-andami\new-58d51c6267b.shp</pre>
                            <pre>    </pre>
                            <pre>    n2 = getTempFile("new", ".shp", r"C:\resultados")</pre>
                            <pre>    print n2</pre>
                            <pre>    #C:\resultados\new-58d51c62686.shp</pre>
                            <pre>    </pre>
                            <pre>    # Ejemplo</pre>
                            <pre>    shp1 = gvpy.runalg("randomvector",10,0)</pre>
                            <pre>    shp2 = gvpy.runalg("gvSIG-reproject", shp1, "false", "EPSG:25829", PATH=[getTempFile("new1", ".shp"),getTempFile("new2", ".shp"),getTempFile("new3", ".shp")])</pre>
                            <pre>    print shp2</pre>
                            <pre>    </pre>
                            <pre>    # Salida multiple en forma de lista: [new1-58d51c7f20ed, new2-58d51c7f20ed, new3-58d51c7f20ed]</pre>
                            <pre>    print shp2[0].getGeometryType().getName()</pre>
                            <pre>    print shp2[1].getGeometryType().getName()</pre>
                            <pre>    print shp2[2].getGeometryType().getName()</pre>
                            <pre>    pass</pre>
                            <br>
                            <br>
                            <div class="moz-cite-prefix">El 24/03/2017 a
                              las 13:00, Ovidio Ribeira escribió:<br>
                            </div>
                            <blockquote type="cite">
                              <div id="divtagdefaultwrapper"
                                style="color: rgb(0, 0, 0); font-family:
                                Calibri,Arial,Helvetica,sans-serif;
                                font-size: 12pt;" dir="ltr">
                                <div id="divtagdefaultwrapper"
                                  style="color: rgb(0, 0, 0);
                                  font-family:
                                  Calibri,Arial,Helvetica,sans-serif;
                                  font-size: 12pt;" dir="ltr">
                                  <p><span>Hola, usando la libreria gvpy
                                      en un script y al ejecutarlo la
                                      segunda vez me da el error de que
                                      el fichero de salida existe,
                                      utilizando el siguente comando:</span></p>
                                  <p><span>gvpy.runalg("gvSIG-reproject",
                                      "Area", "false", "EPSG:25829",
                                      "#", "#", "#",)</span></p>
                                  <p><span>Con esta outra linea funciona
                                      sin problemas creando varios
                                      ficheros temporales:  
                                      <span>gvpy.runalg("randomvector",10,0),</span></span></p>
                                  <p><span><span>Tambien necesito ayuda
                                        para capturar solo la capa de
                                        polígonos del geoproceso 
                                        gvsig-reproject.</span></span></p>
                                  <p><span><span>Gracias y saludos.</span></span></p>
                                  <p><br>
                                  </p>
                                </div>
                              </div>
                              <br>
                              <fieldset class="mimeAttachmentHeader"></fieldset>
                              <br>
                              <pre>_______________________________________________
gvSIG_usuarios mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>

Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
                            </blockquote>
                            <br>
                          </div>
                        </div>
                      </div>
                      <br>
                      <fieldset class="mimeAttachmentHeader"></fieldset>
                      <br>
                      <pre>_______________________________________________
gvSIG_usuarios mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>

Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
                    </blockquote>
                    <br>
                  </div>
                </div>
              </div>
              <br>
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br>
              <pre>_______________________________________________
gvSIG_usuarios mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>

Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
            </blockquote>
            <br>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
gvSIG_usuarios mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gvSIG_usuarios@listserv.gva.es">gvSIG_usuarios@listserv.gva.es</a>

Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección:

<a class="moz-txt-link-freetext" href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios">https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>