<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:"Arial Unicode MS";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@Arial Unicode MS";
        panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.m2331538631360167262hoenzb
        {mso-style-name:m_2331538631360167262hoenzb;}
span.hoenzb
        {mso-style-name:hoenzb;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Hello,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Apologies for the late response, how time flies!  Thank you for your offer for some support and/or collaboration. 
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">We will be definitely be looking at this new importer module to see how it could work with FGDBs.  Can you tell us about the current state of the module? 
 As it should it be considered stable/beta/alpha/etc?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Regarding an implementation approach, it seems like adding FGDB support would involve implementing / adding to an importer (seen here:
<a href="https://github.com/GeoNode/django-osgeo-importer/blob/master/osgeo_importer/importers.py">
https://github.com/GeoNode/django-osgeo-importer/blob/master/osgeo_importer/importers.py</a> )
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">While we mentioned ogr2ogr, it looks like the Django osgeo importer uses the python GDAL /OGR library.  They look functionally equivalent though we haven’t
 used the python/OGR library as much.  There is a python port of ogr2ogr, so it seems like it should be fine in theory:
<a href="https://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py">https://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr2ogr.py</a>
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Another thing would be to use the OpenFileGDB driver as it doesn’t require the SDK from ESRI:
<a href="http://www.gdal.org/drv_openfilegdb.html">http://www.gdal.org/drv_openfilegdb.html</a> and considering that the importer for geonode, in general, just needs to read a FileGDB, not necessarily write one.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">If you have any comments / or could recommend an approach, it would be very welcome.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Best regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">Eric<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><b><span style="font-size:16.0pt;font-family:"Arial Unicode MS",sans-serif">N<span style="font-variant:small-caps">ovel</span>-</span></b><b><span style="font-size:18.0pt;font-family:"Arial Unicode MS",sans-serif;color:#D80000">T</span></b><b><span style="font-size:16.0pt;font-family:"Arial Unicode MS",sans-serif">
</span></b><span style="font-size:10.0pt;font-family:"Arial Unicode MS",sans-serif">Sàrl</span><span style="font-family:"Arial Unicode MS",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Arial Unicode MS",sans-serif">Eric GRÖNING
</span></b><b><span style="font-size:10.0pt;font-family:"Arial Unicode MS",sans-serif">-</span></b><b><span style="font-size:10.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F497D">
</span></b><span style="font-size:10.0pt;font-family:"Arial Unicode MS",sans-serif;font-variant:small-caps;color:#D80000">Solutions Engineer</span><span style="font-size:11.0pt;font-family:"Arial Unicode MS",sans-serif;color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial Unicode MS",sans-serif">W:
</span><span lang="FR" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><a href="http://www.novel-t.ch/"><span lang="EN-US" style="font-size:10.0pt;color:#D80000">www.novel-t.ch</span></a></span><span style="font-size:9.0pt;font-family:"Arial Unicode MS",sans-serif">
 | @: </span><span style="font-size:10.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><a href="mailto:eg@novel-t.ch">eg@novel-t.ch</a></span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:windowtext"> geonode-devel [mailto:geonode-devel-bounces@lists.osgeo.org]
<b>On Behalf Of </b>Jivan Amara<br>
<b>Sent:</b> Monday, December 12, 2016 08:22 PM<br>
<b>To:</b> geonode-devel@lists.osgeo.org<br>
<b>Subject:</b> Re: [GeoNode-devel] Support for additional types in upload<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">No worries; I wasn't contacting you to say you shouldn't move forward; just that you should join in and implement your ideas on the importer instead of directly in GeoNode.  It will be a bit before I turn my attention to enabling fgdb imports. 
 Definitely get in touch if you plan to move forward.  If it's down the road some I'd be happy to work together, if it's sooner I can offer some support to get you going with the importer.<br>
<br>
Best, Jivan<br>
<br>
On 12/12/2016 07:07 AM, Simone Dalmasso wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Rollback, apologyze,  <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">you are working on the importer already, so I'll leave to who is directly involved too.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks!<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2016-12-12 16:01 GMT+01:00 Simone Dalmasso <<a href="mailto:simone.dalmasso@gmail.com" target="_blank">simone.dalmasso@gmail.com</a>>:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal">Hi Jivan, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">this interesting indeed, though the community is working on the <a href="https://github.com/GeoNode/django-osgeo-importer" target="_blank">https://github.com/GeoNode/django-osgeo-importer</a> which will be used in GeoNode soon as default
 way to import data. Do you think that your work can fit in that one?<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">2016-12-05 19:59 GMT+01:00 Jivan Amara <<a href="mailto:development@jivanamara.net">development@jivanamara.net</a>>:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><br>
> ----------------------------------------------------------------------<br>
><br>
> Message: 1<br>
> Date: Fri, 25 Nov 2016 15:52:17 +0000<br>
> From: Eric Groning <<a href="mailto:eg@novel-t.ch">eg@novel-t.ch</a>><br>
> To: "<a href="mailto:geonode-devel@lists.osgeo.org" target="_blank">geonode-devel@lists.osgeo.org</a>" <<a href="mailto:geonode-devel@lists.osgeo.org" target="_blank">geonode-devel@lists.osgeo.org</a>><br>
> Subject: [GeoNode-devel] Support for additional types in upload<br>
> Message-ID:<br>
>       <<a href="mailto:VI1PR04MB1181179E9070D8AD3FE1F96FFA890@VI1PR04MB1181.eurprd04.prod.outlook.com" target="_blank">VI1PR04MB1181179E9070D8AD3FE1F96FFA890@VI1PR04MB1181.eurprd04.prod.outlook.com</a>><br>
><br>
> Content-Type: text/plain; charset="iso-8859-1"<br>
><br>
> Hello,<br>
><br>
> I'm currently adding FGDB support for the upload for a project based on a customized geonode.  Since it might be a feature the community is interested in, I figured it's worth it to mention in this list.  I also have a few questions.<br>
><br>
> First, here is a rough outline of what I'm changing:<br>
><br>
> -Use gdal 2.1.2 (the latest) compiled with FileGDB support (via GDAL_LIBRARY_PATH in Django settings)<br>
> -Change layer forms / upload / geoserver signals to accept a zipped fgdb<br>
> -Change geoserver_pre_save to use call ogr2ogr directly to convert the FGDB to the geoserver data Postgis database (as geoserver won't convert an uploaded FGDB as it does with shapefiles)<br>
><br>
> Second, with regards to adding this to geonode via pull request:<br>
><br>
> The implementation I'm doing wouldn't really be directly merge-able.  To do this properly, there would likely need to be some refactoring done to make the upload generic and extensible (like to easily add more gdal supported types with different file structures
 / extentions such as KML / Postgis backups / GML / SqLite / GeoJSON / etc).   The configuration would have impacts on how the upload form is validated, the layer upload javascript, the model, and how the layer is uploaded to geoserver.  So not a light / easy
 change :)<br>
><br>
> A side issue is that for some formats, you can have multiple layers.  As such, it would be nice to have the UI handle multiple layers (ie let the user choose which layers to upload)<br>
><br>
> For reference, below are links to some shapefile specific handling in the code --<br>
> <a href="https://github.com/GeoNode/geonode/blob/master/geonode/layers/utils.py#L94" target="_blank">
https://github.com/GeoNode/geonode/blob/master/geonode/layers/utils.py#L94</a><br>
> <a href="https://github.com/GeoNode/geonode/blob/master/geonode/layers/forms.py#L81" target="_blank">
https://github.com/GeoNode/geonode/blob/master/geonode/layers/forms.py#L81</a><br>
> <a href="https://github.com/GeoNode/geonode/blob/master/geonode/geoserver/helpers.py#L1084" target="_blank">
https://github.com/GeoNode/geonode/blob/master/geonode/geoserver/helpers.py#L1084</a><br>
><br>
><br>
> The questions are:<br>
><br>
> Is supporting more types / making the upload more generic a planned feature for a future geonode release?<br>
><br>
> What would be the pros / cons to this approach vs an approach like first converting the upload to a shapefile (like in the layer_upload view), then use the existing upload flow?<br>
><br>
> Any pain points / gotchas in the above approach?<br>
><br>
><br>
> Best regards,<br>
> Eric<br>
><br>
> Novel-T Sàrl<br>
> Eric GRÖNING - Solutions Engineer<br>
> W: <a href="http://www.novel-t.ch" target="_blank">www.novel-t.ch</a><<a href="http://www.nove">http://www.nove</a>l-t.ch/> | @:
<a href="mailto:eg@novel-t.ch" target="_blank">eg@novel-t.ch</a><mailto:<a href="mailto:eg@novel-t.ch" target="_blank">eg@novel-t.ch</a>><br>
><br>
Hi Eric,<br>
This project is for making uploads generic:<br>
<a href="https://github.com/geonode/django-osgeo-importer" target="_blank">https://github.com/geonode/django-osgeo-importer</a> and we're going to be<br>
working on FGDB support.  The approach you outlined looks good, I'd just<br>
suggest doing it as part of the importer.<br>
<span style="color:#888888"><br>
<span class="m2331538631360167262hoenzb">--</span><br>
<span class="m2331538631360167262hoenzb">Cheers,</span><br>
<span class="m2331538631360167262hoenzb">Jivan Amara</span><br>
<span class="m2331538631360167262hoenzb">---</span><br>
<span class="m2331538631360167262hoenzb">Senior Software Developer / System Administrator</span><br>
<span class="m2331538631360167262hoenzb"><a href="mailto:Development@JivanAmara.net">Development@JivanAmara.net</a></span><br>
<br>
<br>
<span class="m2331538631360167262hoenzb">_______________________________________________</span><br>
<span class="m2331538631360167262hoenzb">geonode-devel mailing list</span><br>
<span class="m2331538631360167262hoenzb"><a href="mailto:geonode-devel@lists.osgeo.org" target="_blank">geonode-devel@lists.osgeo.org</a></span><br>
<span class="m2331538631360167262hoenzb"><a href="http://lists.osgeo.org/mailman/listinfo/geonode-devel" target="_blank">http://lists.osgeo.org/mailman/listinfo/geonode-devel</a></span></span><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><span class="hoenzb"><span style="color:#888888">-- </span></span><span class="hoenzb"><span style="color:#888888"><o:p></o:p></span></span></p>
<div>
<p class="MsoNormal"><span style="color:#888888">Simone </span><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<p class="MsoNormal">Simone <o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>