<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Bulk Loading Large CSV with Line Vertices to Line Features in GDB in ArcGIS Pro SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-loading-large-csv-with-line-vertices-to-line/m-p/1144712#M7784</link>
    <description>&lt;P&gt;Wow... How time flies....&amp;nbsp; &amp;nbsp;Was revisiting this &lt;A href="https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-load-geodatabase-table-pro-core-sdk/m-p/711327#M28" target="_self"&gt;an issue on Bulk Loading&lt;/A&gt; after working a lot of other things in the interim.&amp;nbsp; Ultimately&amp;nbsp; I found significant improvement in performance when not calling Execute as often as Create...&amp;nbsp; &amp;nbsp; I'm not sure of the right ratio but I believe back in 2020 it was a 1:1 ratio of calls to EditOperation.Create to EditOperation.Execute.&amp;nbsp; &amp;nbsp;Now I probably have 100's if not 1000's of calls to EditOperation.Create before calling EditOperation.Execute.&amp;nbsp; This makes a significant improvement in performance.&amp;nbsp; Is there a recommend ratio or limit?&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;But onto my specific question.....&amp;nbsp; &amp;nbsp;With even larger datasets since then I've leveraged the Append, Table to Table, and Feature Class to Feature Class GP Tools to bulk copy data into tables and feature classes.&amp;nbsp; They are far more efficient than EditOperation on large datasets.&amp;nbsp; &amp;nbsp;To bulk load data I've used Table to Table to load over a 100K records in seconds from a CSV file.&amp;nbsp; I've also done equally large datasets of point, line, and polygon feature class using Feature Class to Feature Class and Append.&amp;nbsp; But for Table to Table I've only done that with data (i.e. no features).&amp;nbsp; Now I'm looking back at the same code that is referenced in the original 2020 post (reference above).&amp;nbsp; My Add-In calls native C++ code for all the algorithm processing and currently returns the Geometry and attributes in seconds in a data structure that I then traverse using EditOperation to add to the Feature Class that I also create.&amp;nbsp; That process takes 10's of minutes for the Add-In to actually create all the feature classes and features.&amp;nbsp; &amp;nbsp;The geometry and attributes in the CSV are a set of points and attributes for those points that are used to make a large number of 2 point polyline features to be used as inputs to the 3D Line Intersect with Surface GP Tool.&amp;nbsp; &amp;nbsp;I haven't found a simple way to do this in one step so my current plan is to:&lt;/P&gt;&lt;P&gt;1. Write CSV and attributes to CSV file and adding a column to indicate the ID the line the point should be a part of.&lt;/P&gt;&lt;P&gt;2. Once file is written, bulk import points into a Table or Point Feature Class&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Use Point to Line GP Tool to create the line features from the Point Features&lt;/P&gt;&lt;P&gt;Is there an easier and/or more efficient way to do this?&amp;nbsp; We're talking 100's of Thousands upwards of a few million features.&amp;nbsp; Thanks!&lt;/P&gt;</description>
    <pubDate>Wed, 16 Feb 2022 16:36:02 GMT</pubDate>
    <dc:creator>DHuantes</dc:creator>
    <dc:date>2022-02-16T16:36:02Z</dc:date>
    <item>
      <title>Bulk Loading Large CSV with Line Vertices to Line Features in GDB</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-loading-large-csv-with-line-vertices-to-line/m-p/1144712#M7784</link>
      <description>&lt;P&gt;Wow... How time flies....&amp;nbsp; &amp;nbsp;Was revisiting this &lt;A href="https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-load-geodatabase-table-pro-core-sdk/m-p/711327#M28" target="_self"&gt;an issue on Bulk Loading&lt;/A&gt; after working a lot of other things in the interim.&amp;nbsp; Ultimately&amp;nbsp; I found significant improvement in performance when not calling Execute as often as Create...&amp;nbsp; &amp;nbsp; I'm not sure of the right ratio but I believe back in 2020 it was a 1:1 ratio of calls to EditOperation.Create to EditOperation.Execute.&amp;nbsp; &amp;nbsp;Now I probably have 100's if not 1000's of calls to EditOperation.Create before calling EditOperation.Execute.&amp;nbsp; This makes a significant improvement in performance.&amp;nbsp; Is there a recommend ratio or limit?&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;But onto my specific question.....&amp;nbsp; &amp;nbsp;With even larger datasets since then I've leveraged the Append, Table to Table, and Feature Class to Feature Class GP Tools to bulk copy data into tables and feature classes.&amp;nbsp; They are far more efficient than EditOperation on large datasets.&amp;nbsp; &amp;nbsp;To bulk load data I've used Table to Table to load over a 100K records in seconds from a CSV file.&amp;nbsp; I've also done equally large datasets of point, line, and polygon feature class using Feature Class to Feature Class and Append.&amp;nbsp; But for Table to Table I've only done that with data (i.e. no features).&amp;nbsp; Now I'm looking back at the same code that is referenced in the original 2020 post (reference above).&amp;nbsp; My Add-In calls native C++ code for all the algorithm processing and currently returns the Geometry and attributes in seconds in a data structure that I then traverse using EditOperation to add to the Feature Class that I also create.&amp;nbsp; That process takes 10's of minutes for the Add-In to actually create all the feature classes and features.&amp;nbsp; &amp;nbsp;The geometry and attributes in the CSV are a set of points and attributes for those points that are used to make a large number of 2 point polyline features to be used as inputs to the 3D Line Intersect with Surface GP Tool.&amp;nbsp; &amp;nbsp;I haven't found a simple way to do this in one step so my current plan is to:&lt;/P&gt;&lt;P&gt;1. Write CSV and attributes to CSV file and adding a column to indicate the ID the line the point should be a part of.&lt;/P&gt;&lt;P&gt;2. Once file is written, bulk import points into a Table or Point Feature Class&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Use Point to Line GP Tool to create the line features from the Point Features&lt;/P&gt;&lt;P&gt;Is there an easier and/or more efficient way to do this?&amp;nbsp; We're talking 100's of Thousands upwards of a few million features.&amp;nbsp; Thanks!&lt;/P&gt;</description>
      <pubDate>Wed, 16 Feb 2022 16:36:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-loading-large-csv-with-line-vertices-to-line/m-p/1144712#M7784</guid>
      <dc:creator>DHuantes</dc:creator>
      <dc:date>2022-02-16T16:36:02Z</dc:date>
    </item>
    <item>
      <title>Re: Bulk Loading Large CSV with Line Vertices to Line Features in GDB</title>
      <link>https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-loading-large-csv-with-line-vertices-to-line/m-p/1145176#M7799</link>
      <description>&lt;P&gt;I haven't found a good GP Tool solution...&amp;nbsp; &amp;nbsp;So since my coordinates are actually computed in a C++ component I've decided to actually create a Shapefile using GDAL on the C++ side and then pull that into the Geodatabase with a GP Tool.&amp;nbsp; My experience has been that GDAL is extremely fast so I think I'll be happy with the results.&amp;nbsp; But will post update here.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Feb 2022 15:29:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-pro-sdk-questions/bulk-loading-large-csv-with-line-vertices-to-line/m-p/1145176#M7799</guid>
      <dc:creator>DHuantes</dc:creator>
      <dc:date>2022-02-17T15:29:03Z</dc:date>
    </item>
  </channel>
</rss>

