Giter Club home page Giter Club logo

qaequilibrae's Introduction

AequilibraE

Downloads

Documentation

unit tests

Code coverage

Linux builds

MacOS buils

Windows builds

QAequilibraE artifacts

AequilibraE is a fully-featured Open-Source transportation modeling package and the first comprehensive package of its kind for the Python ecosystem, and is released under an extremely permissive and business-friendly license.

It is developed as general-purpose modeling software and imposes very little underlying structure on models built upon it. This flexibility also extends to the ability of using all its core algorithms without an actual AequilibraE model by simply building very simple memory objects from Pandas DataFrames, and NumPY arrays, making it the perfect candidate for use-cases where transport is one component of a bigger and more general planning or otherwise analytical modeling pipeline.

Different than in traditional packages, AequilibraE's network is stored in SQLite/Spatialite, a widely supported open format, and its editing capabilities are built into its data layer through a series of spatial database triggers, which allows network editing to be done on Any GIS package supporting SpatiaLite, through a dedicated Python API or directly from an SQL console while maintaining full geographical consistency between links and nodes, as well as data integrity and consistency with other model tables.

AequilibraE provides full support for OMX matrices, which can be used as input for any AequilibraE procedure, and makes its outputs, particularly skim matrices readily available to other modeling activities.

AequilibraE includes multi-class user-equilibrium assignment with full support for class-specific networks, value-of-time and generalized cost functions, and includes a range of equilibration algorithms, including MSA, the traditional Frank-Wolfe as well as the state-of-the-art Bi-conjugate Frank-Wolfe.

AequilibraE's support for public transport includes a GTFS importer that can map-match routes into the model network and an optimized version of the traditional "Optimal-Strategies" transit assignment, and full support in the data model for other schedule-based assignments to be implemented in the future.

State-of-the-art computational performance and full multi-threading can be expected from all key algorithms in AequilibraE, from cache-optimized IPF, to path-computation based on sophisticated data structures and cascading network loading, which all ensure that AequilibraE performs at par with the best commercial packages current available on the market.

AequilibraE has also a Graphical Interface for the popular GIS package QGIS, which gives access to most AequilibraE procedures and includes a wide range of visualization tools, such as flow maps, desire and delaunay lines, scenario comparison, matrix visualization, etc. This GUI, called QAequilibraE, is currently available in English, French and Portuguese and more languages are continuously being added, which is another substantial point of difference from commercial packages.

Finally, AequilibraE is developed 100% in the open and incorporates software-development best practices for testing and documentation. AequilibraE's testing includes all major operating systems (Windows, Linux and MacOS) and all currently supported versions of Python. AequilibraE is also supported on ARM-based cloud computation nodes, making cloud deployments substantially less expensive.

Comprehensive documentation

AequilibraE documentation built with Sphinx

What is available only in QGIS

Some common resources for transportation modeling are inherently visual, and therefore they make more sense if available within a GIS platform. For that reason, many resources are available only from AequilibraE's QGIS plugin, which uses AequilibraE as its computational workhorse and also provides GUIs for most of AequilibraE's tools. Said tool is developed independently and a little delayed with relationship to the Python package, and more details can be found in its GitHub repository.

qaequilibrae's People

Contributors

github-actions[bot] avatar jake-moss avatar jamiecook avatar janzill avatar m-richards avatar pedrocamargo avatar r-akemii avatar transifex-integration[bot] avatar ttalex avatar ychtw avatar zackad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qaequilibrae's Issues

cannot import name reblocks_matrix error

I installed AequilibraE inside QGIS 2.16.2 and I got this error message: cannot import name reblocks_matrix.

It seems the extension path is wrong.

Version de Python : 2.7.10 (default, Oct 23 2015, 19:19:21) [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] 
Version de QGIS : 2.16.2 Nødebo, exported 

Chemin Python :
/Users/aymeric/.qgis2/python/plugins/ScipyPointClustering
/Users/aymeric/.qgis2/python/plugins/processing
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/httplib2-0.8-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/python_dateutil-2.2-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/six-1.10.0-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/requests-2.5.0-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/gsconfig-1.0.6-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/jsmin-2.2.1-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/gsconfig-1.0.3-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/gisdata-0.5.4-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/httplib2-0.9.2-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/requests-2.9.1-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/jsbeautifier-1.6.2-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/six-1.10.0-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs/BeautifulSoup-3.2.1-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/gisdata-0.5.4-py2.7.egg
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs/gsimporter-1.0.0-py2.7.egg
/Applications/QGIS.app/Contents/MacOS/../Resources/python
/Users/aymeric/.qgis2/python
/Users/aymeric/.qgis2/python/plugins
/Applications/QGIS.app/Contents/MacOS/../Resources/python/plugins
/Library/Frameworks/SQLite3.framework/Versions/C/Python/2.7
/Library/Frameworks/GEOS.framework/Versions/3/Python/2.7/site-packages
/Library/Python/2.7/site-packages/scipy-override
/Library/Python/2.7/site-packages/numpy-override
/Library/Python/2.7/site-packages/matplotlib-override
/Library/Frameworks/GDAL.framework/Versions/2.1/Python/2.7/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages
/Library/Python/2.7/site-packages/PIL
/Users/aymeric/.qgis2//python
C:/Users/Pedro/.qgis2/python/plugins/AequilibraE/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/algorithms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE//forms//
/Users/aymeric/.qgis2/python/plugins/AequilibraE//algorithms//
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/algorithms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/
/Users/aymeric/.qgis2/python/plugins/AequilibraE//aequilibrae//
/Users/aymeric/.qgis2/python/plugins/DigitizingTools/tools
/Users/aymeric/.qgis2/python/plugins/geoserverexplorer/ext-libs
/Users/aymeric/.qgis2/python/plugins/mmqgis/forms
.
/Users/aymeric/.qgis2/python/plugins
/Users/aymeric/.qgis2/python/plugins/webappbuilder/ext-libs
/Users/aymeric/.qgis2/python/plugins/webappbuilder
C:/Users/Pedro/.qgis2/python/plugins/AequilibraE/
C:/Users/Pedro/.qgis2/python/plugins/AequilibraE/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/algorithms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE//forms//
/Users/aymeric/.qgis2/python/plugins/AequilibraE//algorithms//
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/algorithms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/forms/
/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/
/Users/aymeric/.qgis2/python/plugins/AequilibraE//aequilibrae//

Log:

2016-09-27T16:59:26 1   Traceback (most recent call last):
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 333, in startPlugin
                plugins[packageName] = package.classFactory(iface)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/__init__.py", line 22, in classFactory
                from AequilibraE_menu import AequilibraE_menu
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/AequilibraE_menu.py", line 26, in <module>
                from create_graph_dialog import Graph_Creation_Dialog
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/create_graph_dialog.py", line 29, in <module>
                from create_graph_procedure import GraphCreation
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/create_graph_procedure.py", line 24, in <module>
                from aequilibrae.paths import Graph
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/__init__.py", line 21, in <module>
                from . import paths  # We import the graph
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/paths/__init__.py", line 15, in <module>
                from .assignment import all_or_nothing
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/paths/assignment.py", line 41, in <module>
                from mac import *
              File "/Applications/QGIS.app/Contents/MacOS/../Resources/python/qgis/utils.py", line 607, in _import
                mod = _builtin_import(name, globals, locals, fromlist, level)
              File "/Users/aymeric/.qgis2/python/plugins/AequilibraE/aequilibrae/paths/mac/__init__.py", line 1, in <module>
                from AoN import one_to_all, reblocks_matrix
            ImportError: cannot import name reblocks_matrix

Least squares not working

2018-08-26T11:08:24 WARNING Traceback (most recent call last):
File "C:/Users/pedro.camargo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\AequilibraE\common_tools\worker_thread.py", line 44, in run
success = self.doWork()
File "C:/Users/pedro.camargo/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\AequilibraE\gis\least_common_denominator_procedure.py", line 57, in doWork
self.to_layer.dataProvider().crs())
TypeError: QgsCoordinateTransform(): arguments did not match any overloaded call:
overload 1: too many arguments
overload 2: not enough arguments
overload 3: not enough arguments
overload 4: not enough arguments
overload 5: argument 1 has unexpected type 'QgsCoordinateReferenceSystem'

Problem with inverse power model - gravity calibration

Hello,
I seem to have a problem with getting results from the gravity calibration algorithm while using the inverse power model. I never can get a convergence, whether it is really high or low, and whether I set a 1000 iterations or more. Therefore, the "alpha" is always "nan". However, it works perfectly with the negative exponential model. So I did a little bit of troubleshooting and noticed that, in the log results file, the "total of seed matrix" (line 18) for the inverse power is always at 0 while for the negative exp. model it is the same number as the target vectors (i chose the same origin-destination flow & distance columns for both, i've tried it many times).

Also, I don't know Python, but while digging for an answer, I noticed in the gravity_application.py file, line 193 is written
self.output[i, :] = np.exp(-beta * cost) * p * a
while for the power model, at line 195, it's written
self.output[i, :] = np.nan_to_num(np.power(cost, -alpha) * p * a).

Could this cause the problem?
I'm using Windows 10, QGIS 2.18.15, Aequilibrae 0.3.5.9.
Well, thanks for your help, the Aequilibrae plug-in is really useful, thank you for it.

inverse power log results on the left, negative exponential on the right, see line 18
image

Shortest Path problem: "from" and "to" field link to wrong data column

Hi,

I'm trying to calculate the shortest path on a network.
I configure the tool with the the graph file and link the links_ID to the unique link_id, the Node_ID to the unique Node_id.
The I go to the from field and click on a startpoint. QGIS now fills the value in from field of the first column of my nodes layer (which is ogc_id). Same for To-field. These values are off course different then my node_id values.
When computing the path, I recieve "No path between 602 and 615", which is normal as these are ogc_id values and not node_id values.
Attached the sqllite database with nodes en links (only to be used for debugging).

QGIS: 2.18.12
AequilibraE: 0.3.5.6

NetworkDB.zip

Regards,

Tom

Least Commom Denominator does not load

2016-10-16T07:34:18 1 Traceback (most recent call last):
File "C:/Users/Pedro/.qgis2/python/plugins\AequilibraE\AequilibraEMenu.py", line 272, in run_lcd
dlg2 = LeastCommonDenominatorDialog(self.iface)
File "C:/Users/Pedro/.qgis2/python/plugins\AequilibraE\least_common_denominator_dialog.py", line 50, in init
self.from_layer.currentIndexChanged.connect(partial(self.reload_fields, 'from'))
AttributeError: 'LeastCommonDenominatorDialog' object has no attribute 'from_layer'

Error probably comming from a disconnect between the UI as done in designer and the dialog class that uses it.

QGIS 3.0 support

This plugin (which looks super exciting) doesn't appear in the QGIS 3.0 plugins list, presumably because it hasn't been migrated yet. Will it be migrated soon, or should people looking to use it stick to QGIS 2.18 for now?

Thanks!

Not launching some features

Hi Pedro,
first of all, I really value what you are doing with AequilibraE and is becoming a really good tool.

Regarding the issue at hand, there are problems launching "Shortest Path", "Impedance Matrix", "Traffic Assignment" and "Desired Lines". I got the message Binary Error: Please download it from the repository using the downloader from the menu. But I have the Scripts.

Also, I opened "impedance_matrix_procedures.py" and realized that you had your personal file path, so you may want to take a look at that.

import qgis from qgis.core import * from PyQt4.QtCore import * import time import numpy as np import sys sys.path.append("C:/Users/Pedro/.qgis2/python/plugins/AequilibraE/")

As a last thing, in "Parameters" you had your personal file path as well.

Regards,
Gustavo.

Delaunay Lines stuck at Assigning Demand

I was trying to create Delaunay Lines map using a 49*49 matrix. The Desire Lines feature worked instantly, but Delaunay Lines stuck at Assigning Demand (100%) and not a line on the map. I downloaded AequilibraE Master branch from github on July 7th. Wondering what went wrong?

enhancing graph_from_shapefile in the API

The API needs to be able to create graphs that have skim fields.
Ideally the argument for this would be a dictionary where the keys are the names of the skims and the values are tuples with the names of two fields in the layer for AB and BA links.

Plugin not appearing in QGIS

Not sure what I'm doing wrong

Im running QGIS 2.14.5 LTR, 32-bit, on Windows 10

I search for the plugin and it doesnt show up. Not sure what Im doing wrong

image

Error while creating graph

I get an error while creating a graph:
Traceback (most recent call last):
File "C:/Users/.../.qgis2/python/plugins\AequilibraE\paths\create_graph_dialog.py", line 299, in finished_threaded_procedure
self.worker_thread.graph.save_to_disk(self.output)
File "C:\Users....qgis2\python\plugins\AequilibraE\aequilibrae\paths\graph.py", line 507, in save_to_disk
cPickle.dump(mygraph, open(filename, 'wb'))
IOError: [Errno 13] Permission denied: u'graph'

I am using a Mac.

Do you know what the problem is?

Fix the scale of the bandwidths created by the stacked bandwidth.

It would be useful to be able to choose the scale of the bandwidths at the stacked bandwidth interface.
ie here:

image

Ideally it would be good to have some ability to choose the value which the max bandwidth is based off, rather than just the max value in the layer. For example a user may want 'layer B' (with a maximum value of less than 100) to have the same scale as 'layer A' (with a maximum value of 100).

Exporting AED file

Whenever I try to export an AED file into CSV, I get the following error:

2018-09-10T14:20:33 1 Traceback (most recent call last):

File "C:/Users/yury/.qgis2/python/plugins\AequilibraE\matrix_procedures\display_aequilibrae_formats_dialog.py", line 166, in export
new_name, file_type = GetOutputFileName(self, self.data_type, ["Comma-separated file(*.csv)"], ".csv", self.path)
AttributeError: 'DisplayAequilibraEFormatsDialog' object has no attribute 'path'

Problem with dialog box

I have a problem with the dialog boxes, where I can hardly click on the button to load matrices. I cannot even click them in the "apply gravity model" section.
capture
capture

Graph creation improvements

Two important improvements for the graph creation tool:

  • Proper updating of the GUI when dual fields is activated/deactivated
  • more robust identification of dual fields

Colours are visible for zero-load (stacked) bandwidths

Great tool! Just one issue, the non-accessible AB or BA side of one-directional links or zero-load links show colours when preparing a stacked bandwidth. It seems like it can be solved by applying a conditional pen width based on whether a load is available or not.

Install issues

Installing the plugin does not work on my Linux Mint 17(=Ubuntu 14.04) with QGIS 2.16.2 installed:
Error on first try:
numpy.dtype has the wrong size, try recompiling
Error when just repeating:
cannot import name _one_to_all

Error when a web layer is in the map

An example of error is the following:
Traceback (most recent call last):
File "C:/Users/pedro.camargo.VEITCHLISTER/.qgis2/python/plugins\AequilibraE\AequilibraEMenu.py", line 277, in run_dlines
dlg2 = DesireLinesDialog(self.iface)
File "C:/Users/pedro.camargo.VEITCHLISTER/.qgis2/python/plugins\AequilibraE\desire_lines_dialog.py", line 63, in init
if layer.wkbType() in poly_types or layer.wkbType() in point_types:
AttributeError: 'QgsRasterLayer' object has no attribute 'wkbType'

Preparing networks with MultiLineString

The GUI for "Preparing Network" allows you to choose line layers that are MultiLineString, while the code is not designed for such (doesn't even make sense as such).
There is no warning whatsoever, and that can lead to unnecessary time wasted debugging the issue.

Stacked bandwidth does not treat Nulls properly

When doing stacked bandwidths, the formula for stroke style does not treat NULLS properly (if should treat them as zero).

The current formula is:
if ("AB_FLOW" = 0,'no', 'solid')

while it should be

if (coalesce("AB_FLOW",0) = 0,'no', 'solid')

Error out of the blue after using the tool for adding connector

Error appears when closing a project after using the adding connector feature. Stack trace below:

An error has occurred while executing Python code:

AttributeError: 'AddConnectorsDialog' object has no attribute 'CentroidField'
Traceback (most recent call last):
File "C:/Users/Pedro/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\AequilibraE-GUI\network\adds_connectors_dialog.py", line 96, in set_fields
self.CentroidField.setLayer(self.CentroidLayer.currentLayer())
AttributeError: 'AddConnectorsDialog' object has no attribute 'CentroidField'

Python version: 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
QGIS version: 3.4.2-Madeira Madeira, 22034aa070

Python Path:
C:\Users\Pedro\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\AequilibraE-GUI\aequilibrae
C:\Users\Pedro\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\AequilibraE-GUI\aequilibrae
C:/PROGRA1/QGIS31.4/apps/qgis/./python
C:/Users/Pedro/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:/Users/Pedro/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins
C:/PROGRA1/QGIS31.4/apps/qgis/./python/plugins
C:\Program Files\QGIS 3.4\bin\python37.zip
C:\PROGRA1\QGIS31.4\apps\Python37\DLLs
C:\PROGRA1\QGIS31.4\apps\Python37\lib
C:\Program Files\QGIS 3.4\bin
C:\PROGRA1\QGIS31.4\apps\Python37
C:\PROGRA1\QGIS31.4\apps\Python37\lib\site-packages
C:\PROGRA1\QGIS31.4\apps\Python37\lib\site-packages\win32
C:\PROGRA1\QGIS31.4\apps\Python37\lib\site-packages\win32\lib
C:\PROGRA1\QGIS31.4\apps\Python37\lib\site-packages\Pythonwin
C:/Users/Pedro/AppData/Roaming/QGIS/QGIS3\profiles\default/python
C:\Users\Pedro\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\AequilibraE-GUI\paths_procedures/aequilibrae/
C:\Users\Pedro\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\AequilibraE-GUI\paths_procedures/aequilibrae/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.