<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi everyone,<br>
    <br>
    I'm trying to perform a quite simple analysis in Postgis, but I'm
    facing a TopologyException where there's no features.<br>
    <br>
    You can find the data I'm using in this <a
href="https://mega.co.nz/#%21pFgnCBoA%21zx-Tb78nPGzL7Fcbw7dMheSbIrMfRJjJ9yV1Qv7Wx6o">link</a>.<br>
    <p>What I try to do is the next:</p>
    <ul>
      <li>First I want to create a buffer for emt_paradas, and the layer
        valenbisi, and then intersect them, the result I will call
        "intersect_1".</li>
    </ul>
    <pre><code>    select  st_intersection(buf_emt.st_union,buf_valenbisi.st_union)
    from
    (SELECT  ST_union(st_buffer(emt_paradas.geom, 200)) FROM emt_paradas )as buf_emt,
    (SELECT  ST_union(st_buffer(valenbisi.geom, 200)) FROM valenbisi )as buf_valenbisi</code></pre>
    <ul>
      <li>Second, I want to create a buffer for carril_bici, and
        intersect with "intersect_1". The result I will call
        "intersect_2".</li>
    </ul>
    <pre><code>    select  st_intersection(buf_carril_bici.st_union,inter_emt_valenbisi.st_intersection)
    from
    (select  st_intersection(buf_emt.st_union,buf_valenbisi.st_union)
    from
    (SELECT  ST_union(st_buffer(emt_paradas.geom, 200)) FROM emt_paradas )as buf_emt,
    (SELECT  ST_union(st_buffer(valenbisi.geom, 200)) FROM valenbisi )as buf_valenbisi) as intersect_1</code></pre>
    <ul>
      <li>Third, I want to create a buffer for layer ocio and make a
        difference with "intersect_2". The result I will call: "diff_1".</li>
    </ul>
    <pre><code>    select  st_difference(intersec_2.st_intersection, buf_ocio.st_union)
    from
    (select  st_intersection(buf_carril_bici.st_union,inter_emt_valenbisi.st_intersection)
    from
    (select  st_intersection(buf_emt.st_union,buf_valenbisi.st_union)
    from
    (SELECT  ST_union(st_buffer(emt_paradas.geom, 200)) FROM emt_paradas )as buf_emt,
    (SELECT  ST_union(st_buffer(valenbisi.geom, 200)) FROM valenbisi )as buf_valenbisi) as inter_emt_valenbisi,
    (SELECT  ST_union(st_buffer(carril_bici.geom, 200)) FROM carril_bici )as buf_carril_bici) as intersectionEMT_valenbisi_carrilBici,
    (SELECT  ST_union(st_buffer(ocio.geom, 250)) FROM ocio )as buf_ocio</code></pre>
    <ul>
      <li>Finnaly I want to intersect "diff_1" with layer
        mapa_ruido_dia, ideally where the field gridcode equals one or
        two.</li>
    </ul>
    <pre><code>    select 1 as id, st_intersection(diff_1.st_difference, mapa_ruido_dia.geom)
    from
    (select  st_difference(intersectionEMT_valenbisi_carrilBici.st_intersection, buf_ocio.st_union)
    from
    (select  st_intersection(buf_carril_bici.st_union,inter_emt_valenbisi.st_intersection)
    from
    (select  st_intersection(buf_emt.st_union,buf_valenbisi.st_union)
    from
    (SELECT  ST_union(st_buffer(emt_paradas.geom, 200)) FROM emt_paradas )as buf_emt,
    (SELECT  ST_union(st_buffer(valenbisi.geom, 200)) FROM valenbisi )as buf_valenbisi) as inter_emt_valenbisi,
    (SELECT  ST_union(st_buffer(carril_bici.geom, 200)) FROM carril_bici )as buf_carril_bici) as intersectionEMT_valenbisi_carrilBici,
    (SELECT  ST_union(st_buffer(ocio.geom, 250)) FROM ocio )as buf_ocio)as diff_1, mapa_ruido_dia 
     where mapa_ruido_dia.gridcode='1' or mapa_ruido_dia.gridcode='2'

</code></pre>
    Is in this last one query when Postgis show me the TopologyException<br>
    <br>
    <pre><code>> Error performing intersection: TopologyException: Input geom 1 is
> invalid: Self-intersection at or near point 723120.23091093975
> 4379700.195452339 at 723120.23091093975 4379700.195452339

<font face="sans-serif">
Any ideas? Thank you very much!</font></code></pre>
  </body>
</html>