I am just starting out with reinforcement learning and trying to create a custom environment with OpenAI gym. However, I am stumped with trying to create an environment (with roads and intersections) from map data, say Google Maps.
Would appreciate any help I can get.
The best way that I have found would be to use osmnx to have your map data ready in a graph format. It allows easy access of nodes that make up a street map in a graph or geopandas form. This data can then be used to drive the game logic. With regards to rendering, external rendering tools like PyGame can then be used.
Related
I am working on a Revit plugin to run on Forge (Design Automation app) that exports a 3D view through a custom exporter. As an input argument, it requires the name (or ElementID) of one of the 3D views from the Revit model. Is there a way to query the name of the views of a Revit model through other Forge solutions (like Data Management API)?
I couldn't find anything, if there is not an http api for that I assume I have to do it as part of my plugin run. What's the best to do that then?
Should I have a separate plugin that extracts the view names?
Thank you so much!
From your description, it appears that you have very little experience with Revit API add-ins. Maybe you should take a look at the getting started material first and work through the video tutorial. It explains a lot of important fundamentals, including covering this current question of yours.
The (almost) one and only way to retrieve elements from the Revit database is to use a filtered element collector. That would be the method of choice to find the element id of the 3D view you are looking for.
You cannot have searched very exhaustively, because many discussions by The Building Coder on the custom exporter and other topics include a code snippet showing how to pick a 3D view suitable for exporting.
To ensure you really have a 3D view set up just as you need it, you might prefer creating a new one from scratch.
Out of curiosity, is your task associated with the discussion thread on Revit API vs. ReCap API for historic project?
GIS is not really my expertise and need advice from experts here. Pardon me for my incorrect terms. I have a client asking to develop a system which provides API to consume data from their POI, PA and MPA datasets (in shapefile). Question is, what are my options to do this? Should I develop the system from scratch by maybe converting the shapefile to GeoJSON, or us there any opensource/paid solution already made for this use case? Any help/tip/advice would be much appreciated! Thank you!
You can try Geoserver. I know people without GIS or technical knowledge who managed to publish geodata with it on the web. The vector data / JSON API is an implementation of the OGC WFS standard - which might come handy if later your client decides to plug the data in something like Leaflet or OpenLayers (or most other GIS frameworks for that matter).
Note that GeoServer is a great standalone solution. But I'm not so sure it is your best option if what you are describing is just one part of a more complex system.
I am an App developer with no experience with AutoCAD at all, and for my current project I need to convert DWG files into Spatial Data - ESRI Shapefile / GeoJSON, etc.
Given that DWG is a proprietary format owned by Autodesk, the Autodesk Forge API becomes my only option to interpret such file. I have been evaluating the Model Derivative API for a week now, and what I found is that it won't work for my purposes. It has only 3 output formats (f2d, f3d, rvt) for DWG files and none of them fits my purpose.
For this reason, I started to look at others API's in the platform and ended up finding the Design Automation API which might be helpful, however it lacks documentation.
One of the examples in the API is the PlotToPdf activity that exports a DWG into a PDF. I wonder if there is a way to export other formats other than PDF.
I tried to find the possible "commands" in the interface by listing all the activities, workItems and AppPackages but none of these end-points returned me any useful information.
So here are my questions?
How can I can convert a DWG into a non Autodesk format? Being more specifically, the output must be an open format that I can interpret without using proprietary tools.
If the answer for the first question is Autodesk Forge API, which one should I use?
In case I should be using Design Automation API for that, where can I find complementary documentation once the one provided is lacking details?
I would say that Design Automation API is the best option if you don't have (or don't want) AutoCAD running (or any other DWG compatible desktop app).
To be complete: Design Automation includes an instance of AutoCAD running on the cloud, where you can upload a .DWG with a sequence of commands (script) and a .NET custom app to execute more advanced routines. Then download the results. By default, neither AutoCAD nor Design Automation can export to GIS formats (like those you mentioned), only some verticals, like Civil 3D or Map 3D, but these are not available on Design Automation. As you mentioned, Model Derivative API (via REST calls) don't have what you need, it's focused on metadata, not the specifications of the geometry.
Design Automation API supports the same commands AutoCAD Console does. For DXF creation, you can use DXFOUT command, your script would be something like (not tested):
FILEDIA
0
DXFOUT
outputfilename.dxf
QUIT
As per comment, it's a huge effort to just convert to .DXF. I'm not familiar with other libraries do perform the same task.
Now I'm not an expert on GIS data formats, but you may consider move from .DWG to .DXF then an approach like described here.
I don't quite understand this point that you are making in the comments:
I would only use the API to convert DWG to DXF, which means a huge waste of resources considering the monthly cost of the API and the time to develop and maintain the interface.
Can you clarify? Are you saying that transaction cost for Design Automation is too high? Or are you saying that development cost associated with deploying the script that Augusto gave you is too high?
Thanks
Right now the derivativeApi is the way to go for this: You can convert any input format from this list (https://developer.autodesk.com/en/docs/model-derivative/v2/overview/supported-translations/) to the "intermediate format" svf and the convert the svf file to obj for example. This will also create a material file which can be downloaded seperately. I am evaluation the forge api right now and can produce obj from dwg files right now.
I have deployed a regression model on azure ML , is it possible to get the model weights/coefficients of the model programatically from azure, rather than getting predicted value? .
I think you can do so, in your training experiment add an output to your evaluate model module then select deploy webservice right away without going through the predictive experiment option.
Once You publish and click the TEST button You should the values as below
No. Currently we do not feature exporting weights from the models including with Azure Machine Learning.
If you have a method for extracting weights from Python models, you may be able to work this out using the execute Python Script module.
The primary purpose of Azure Machine Learning is to make deployable and scalable web services from the machine learning modules. Though the authoring experience for creating ML models is great, it is not intended to be a place to create and export models, but instead a place to create and operationalize your models.
UPDATE New features may make this answer outdated.
(I hope this is a valid question)
As I stated in my title, I'm looking for a fairly easy to moderately easy idea for some sort of online raster analysis map. I'm familiar with ESRI and their really awesome API, as I'm hoping to tackle something on that front. I'm also open to using the mapstraction lib.
Does anyone have any ideas for me?
Thanks!!
I'm not sure you mean image rasters or data rasters. This uses open source packages: MapServer and an AJAX client MsCross. It generates data rasters on the server and displays them in the browser. The rasters are contour plots for a plume of contamination in groundwater.
If you are already familiar with ESRI, then you should look at the ESRI Flex API ESRI Javascript API. You can use both of them to fire up Server side Geoprocessing services.
There are so many ways to skin the cat...
You may want to check the Publishing a GeoProcessing Service section of ESRI help
The basic idea is this... you use ArcMap/ArcCatalog to author a Geoprocessing Model (I am assuming you are familiar with this), which you later expose in an ArcGIS Server as a Geoprocessing Service. Publishing a model as a service is pretty easy provided you already have an ArcGIS Server configured - see the links I provided you above.
Then you can either use the free ArcGIS Explorer application to consume that GeoProcessing Service or write a webapp using Flex, or Javascript or DotNet or even python to consume that webservice.
And yeah, don't consume the webservice synchronously - stick with async.
You do unfortunately not write, what exactly you need. Do you want to display maps on a web page or in a application?
In the latter case i would recommend using http://www.openstreetmap.org/ it seems to be a little tricky in the beginning, buts data base gets better and better. A number of renderes exist, which you can integrate into your application.