[Ironpython-users] How to free memory in ironpython

Slide slide.o.mix at gmail.com
Wed Nov 9 20:54:24 EST 2016


Your python code is different from what the C# code does:

utils = MapWinGIS.*UtilsClass*()
osm_filePath = "C:\\rome.osm"
shps_filePath = "C:\\rome_sph_files"
bstrOptions = '--config OSM_USE_CUSTOM_INDEXING NO -skipfailures -f "ESRI
Shapefile"'
convertToShapefiles_Result = MapWinGIS.UtilsClass.*OGR2OGR*(utils,
osm_filePath, shps_filePath, bstrOptions, *None*) <------

that line should probably be:
convertToShapefiles_Result = *utils*.*OGR2OGR*(utils, osm_filePath,
shps_filePath, bstrOptions, *None*)

On Wed, Nov 9, 2016 at 6:23 PM Djordje Spasic via Ironpython-users <
ironpython-users at python.org> wrote:

> Hi Steve,
>
> Thank you for the reply.
>
> This is the C# code sent to me by one of the developers. He calls the
> OGR2OGR method only once per script, but when he tries to call the script
> again, it works with no problem. Which is not the case on my PC:
>
> GlobalSettings settings = new *GlobalSettings*();
> settings.*ResetGdalError*();
> UtilsClass utils = new MapWinGIS.*UtilsClass*();
> string options = "--config CONFIG_FILE \"C:\\Program Files\\MapWindow GIS
> Lite\\MapWinGIS\\gdal-data\\osmconf.ini\" --config OSM_USE_CUSTOM_INDEXING
> NO -skipfailures -f \"ESRI Shapefile\"";
> bool result = utils.*OGR2OGR*(@"C:\rome.osm", @"C:\rome_sph_files",
> options);
> *if *(!result)
> {
>     // Both line should be the same:
>     Debug.*WriteLine*(utils.*ErrorMsgFromObject*(utils));
>     Debug.*WriteLine*(utils.ErrorMsg[utils.LastErrorCode]);
>     Debug.*WriteLine*(settings.GdalLastErrorMsg);
> }
>
> *if *(!result) return;
>
>
> He also assigns the path to the osmconf.ini file, but that does not make
> my problem go away, when I try to do the same.
>
> Below is the ironpython code that I use. I call the OGR2OGR method twice
> in that script, instead of once:
>
> *import *clr
>
> iteropMapWinGIS_dll_filePath = "C:\\Program Files\\MapWindow GIS
> Lite\\Interop.MapWinGIS.dll"
> clr.*AddReferenceToFileAndPath*(iteropMapWinGIS_dll_filePath)
> *import *MapWinGIS
>
>
> utils = MapWinGIS.*UtilsClass*()
> osm_filePath = "C:\\rome.osm"
> shps_filePath = "C:\\rome_sph_files"
> bstrOptions = '--config OSM_USE_CUSTOM_INDEXING NO -skipfailures -f "ESRI
> Shapefile"'
> convertToShapefiles_Result = MapWinGIS.UtilsClass.*OGR2OGR*(utils,
> osm_filePath, shps_filePath, bstrOptions, *None*)
> *if *convertToShapefiles_Result == *False*:
>     *print *"MapWinGIS.UtilsClass.OGR2OGR failed the first time"
>     *print *utils.ErrorMsg
>     *print *utils.LastErrorCode
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorNo
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorMsg
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorType
> *else*:
>     *print *"MapWinGIS.UtilsClass.OGR2OGR successfully ran the first time"
>
>
>
> *print *"------------"
> iteropMapWinGIS_dll_filePath2 = "C:\\Program Files\\MapWindow GIS
> Lite\\Interop.MapWinGIS.dll"
> clr.*AddReferenceToFileAndPath*(iteropMapWinGIS_dll_filePath2)
> *import *MapWinGIS
>
> utils2 = MapWinGIS.*UtilsClass*()
> osm_filePath2 = "C:\\athens.osm"
> shps_filePath2 = "C:\\athens_sph_files"
> bstrOptions2 = '--config OSM_USE_CUSTOM_INDEXING NO -skipfailures -f
> "ESRI Shapefile"'
> convertToShapefiles_Result2 = MapWinGIS.UtilsClass.*OGR2OGR*(utils2,
> osm_filePath2, shps_filePath2, bstrOptions2, *None*)
> *if *convertToShapefiles_Result2 == *False*:
>     *print *"MapWinGIS.UtilsClass.OGR2OGR failed the second time"
>     *print *utils2.ErrorMsg
>     *print *utils2.LastErrorCode
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorNo
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorMsg
>     *print *MapWinGIS.*GlobalSettingsClass*().GdalLastErrorType
> *else*:
>     *print *"MapWinGIS.UtilsClass.OGR2OGR successfully ran the second
> time"
>
>
> The mentioned Map Window GIS application can be downloaded from here
> (version MapWindow Lite Win32 1.0.5.0):
> https://mapwindow4.codeplex.com/releases/view/542097
>
> I attached the upper mentioned "rome.osm" and "athens.osm" files along
> with .py file in here:
>
> https://www.dropbox.com/s/2jq1a248jupdfzq/osm_files_plus_ironpythonOGR2OGR.zip?dl=0
>
> The OGR2OGR method essentially converts the .osm files to .shp file format.
>
> Thank you in advance for taking a look.
>
> I would welcome any kind of advice !!
>
> Kind regards,
> Djordje Spasic
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users at python.org
> https://mail.python.org/mailman/listinfo/ironpython-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20161110/65dca524/attachment.html>


More information about the Ironpython-users mailing list