GithubHelp home page GithubHelp logo

esri / optimizerasters Goto Github PK

View Code? Open in Web Editor NEW
124.0 57.0 49.0 895.23 MB

OptimizeRasters is a set of tools for converting raster data to optimized Tiled TIF or MRF files, moving data to cloud storage, and creating Raster Proxies.

License: Apache License 2.0

Python 29.98% Batchfile 0.07% HTML 69.95%
data-management python cloud-storage raster-proxies arcgis mrf azure amazon-s3-storage imagery rasters

optimizerasters's Introduction

OptimizeRasters

OptimizeRasters is a set of tools for accomplishing three tasks: converting raster data to optimized file formats, moving data to cloud storage, and creating raster proxies. The result is more efficient, scalable, and elastic data access with a lower storage cost.

Converting raster data to optimized formats

OptimizeRasters converts a variety of non-optimized raster formats into optimized tiled TIFF, Cloud-Optimized GeoTIFF, or MRF formats. File conversion speeds up read performance in three ways. First, it improves the data structure, which makes data access and transfer (especially from cloud storage) more efficient. Second, it generates pyramids, which provides faster access to data at smaller scales. Third, it offers optional compression, which further reduces the amount of data stored and transmitted.

Moving data to cloud storage

As part of the data conversion process, OptimizeRasters can simultaneously transfer raster data to and from cloud (or enterprise) storage, speeding up the process of getting rasters into the cloud. OptimizeRasters supports Amazon S3, Microsoft Azure, and Google Cloud storage services.

Creating raster proxies

OptimizeRasters can also generate raster proxies to simplify access to raster data stored on cloud or network storage. Raster proxies are small files stored on local file systems that reference much larger raster data files stored remotely. A user can work efficiently with collections of small raster proxy files, which are accessed by ArcGIS like conventional raster files. At the same time, the application can access the large-volume, remotely stored raster data as needed. Raster proxy files can also cache tiles read from the slower remote storage, speeding up access and reducing the need to access the same data multiple times.

Features

  • Streamlined data management
  • Faster read performance
  • Simplified, efficient transfer into and out of cloud storage
  • Compression options that minimize storage requirements
  • Configurable using included editable XML files
  • Open source code, implemented in Python using GDAL to handle a variety of raster formats

What's New in OptimizeRasters 2.2.0

Release notes

Instructions

OptimizeRasters Setup

  1. Click the link to download the OptimizeRasters setup file from GitHub. The file should begin downloading immediately.

  2. Double click the downloaded file to install.

Optional Packages for Cloud Storage

To upload to Amazon S3, Microsoft Azure, or Google Cloud Storage, there are some third-party packages for Python that need to be installed.

If azure, boto3, or google-cloud-storage is already installed, it is important to ensure you are running the most up-to-date version to avoid errors.

More information about installing and updating third-party packages can be found in the OptimizeRasters documentation.

Requirements

  • Python 2.7 or Python 3+ (installed with ArcMap 10.4+ / Pro 1.3+).
  • The OptimizeRasters geoprocessing toolbox requires ArcGIS Map 10.4.1+ / Pro 1.3+.
  • OptimizeRasters can be run from the command line even if ArcGIS is not installed.
  • There are OptimizeRasters versions for both Windows and Linux.
  • OptimizeRasters can be used with Amazon Web Services Lambda serverless compute service, with some restrictions on raster file size.

Resources

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue, or adding a comment to the OptimizeRasters discussion on GeoNet.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2016 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's license.txt file.

optimizerasters's People

Contributors

abhiataero avatar chamlika avatar ewindahl avatar jamesbromberger avatar kushu493 avatar lucianpls avatar randallrebello avatar saijin-naib avatar slibby avatar vedantbajaj96 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  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  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

optimizerasters's Issues

Resume jobs

Hi,

Over the weekend I was running a Imagery_to_MRF_JPEG OptimizeRaster script using many tif files in many folders on the S3 over weekend and it stalled because of an 'gdaladdo.exe has stopped working' error which eventually crashed the computer, therefore the .orjob file did not contain the yes's and no's to run the Resume tool. All the tifs were downloaded to my computer, hundreds of GBs. How can I add the yes's and no's in the .orjob file so that only the tifs get compressed and uploaded as mrf to S3 without being deleted, see below (ps:I already set <Out_S3_DeleteAfterUpload> to false)

SOURCE COPIED PROCESSED UPLOADED
#####/#####/##Tiff_RGB_tiles##/
#####/#####/##Tiff_RGB_tiles##/Thumbs.db
#####/#####/##Tiff_RGB_tiles##/##/##/##.tif yes no

Also c:\Python27\ArcGIS10.4\python.exe c:\Image_Mgmt_Workflows\OptimizeRasters -input=OR_20151211T024329630000.orjob command line code gives me a python main_ error, so I have to run it via the OptimizeRaster tool which is slower.

Also, is there a way to only do the processing in batches, instead of it doing a copy, [S3-Pull] of all tifs to the local tempinput folder?

Many thanks for your help,
K

Problem converting WV3 to MRF

I installed OptimizeRasters yesterday and have been experimenting with converting WorldView-3 imagery to MRF. I started by trying to use OptomizeRasters to convert and upload the MRF files to S3. The process seemed to work but when I checked the files on S3 they were very small -- just a few bytes. They obviously didn't convert. I didn't check the log file to see if there were errors.

I decided to pull back and try something simpler. I just used the DG template to convert to MRF on the local file system (I made a minor modification to the xml to create more pyramids up to a factor of 1024). The scrypt seemed to complete successfully but after looking, I saw errors I don't understand (I do understand the pyramid level warnings).

I tried to access the .imd files in the output MRF folder using ArcMap. ArcMap warned me that the images had inconsistent spatial references. I checked, and the ntf files, which I understand are now MRF, did not had a spatial reference. I tried to manually add a reference using ArcCatalog. It did not take.

I have attached the log file from OptimizeRasters.

Greg Morlock
OptimizeRastersLog.txt

BlobService import fails

When running the ProfileEditor to create an azure profile, it fails with the error "Azure" object has no attribute "_blob_service".
image

Having a look, I belive the error is with this section in "OptimizeRasters.py":

In Class Azure (line 1710): "from azure.storage.blob import BlobService"

The latest version of the azure python sdk does not contain this module.

Changing the code to use "BlockBlobService" appears to fix this, can you confirm?

10.5 Support??

Hi Is OptimizeRaster supported at 10.5? I ask because I am unsuccessful in using Optimizeraster with 10.5 to convert elevation tiff's to MRF with LERC compression.

Thanks,

cloudupload parameter not honored

Hello,

I am running the OptimizeRasters.py script from the command line... I have some permissions and environment settings that don't allow me to run the python toolbox from ArcCatalog. I have tried setting the -cloudupload flag to -cloudupload=true, -cloudupload=True, but with no success. In the same cmd.exe session I am able to run aws s3 ls and see my available buckets, so this command should copy the files to S3, right? Am I leaving something out?

c:\Python27\ArcGIS10.5\python.exe c:\Image_Mgmt_Workflows\OptimizeRasters\OptimizeRasters.py -config=c:\Image_Mgmt_Workflows\OptimizeRasters\Templates\Imagery_to_MRF_JPEG.xml -input=C:\Projects\support\travis_jpeg -mode=rasterproxy -cloudupload=true -clouduploadtype=amazon -outputprofile=earthlab -outputbucket=jmm-mrf -output=mrfs -tempoutput=C:\temp -rasterproxypath=C:\tmp -cache=C:\tmp 

Thanks!
Joe

CloneMRF of Service Overview files don't display at all scales

I'm using CloneMRF to create reference copies of my Service Overviews in Azure Blob storage.

The mrf still has a reference to pyramids even though I set buildpyramids to false:

The result is that the service overview won’t display at all scales because it thinks it has a pyramid.

Creation of MRF from Service Overview hangs

I'm trying to create MRF files from Service Overviews using the Overviews_to_MRF_LERC template. The process hangs at the first file. I don't see gdal_translate in Task Manager either.

This may be a permissions issue since I don't have admin rights on this machine.

Executing: OptimizeRasters Overviews_to_MRF_LERC Local Profile Local G:\workspace\MosaicDatasets\test # Local Profile Local G:\workspace\MosaicDatasets\OptimizeRasterOvrConversion # # # # "Mode mrf;RasterFormatFilter tif,tiff,TIF,TIFF,img,jp2,JP2,IMG;ExcludeFilter tmp,rrd,idx,lrc,mrf_cache,pjp,ppng,pft,pzp,ovr,aux.xml,aux,tfw,TFW,pjg;Compression LERC;Quality #;LERCPrecision #;BuildPyramids false;PyramidFactor '2 4 8 16 32 64';PyramidSampling avg;PyramidCompression LERC;NoDataValue #;BlockSize 512;Scale #;KeepExtension false;Threads 4"
Start Time: Thu Apr 14 11:32:06 2016
Running script OptimizeRasters...
log-msg: Copying non rasters/aux files (G:/workspace/MosaicDatasets/test/=>G:/workspace/MosaicDatasets/OptimizeRasterOvrConversion/)..
log-msg: Done.
log-msg: Converting..
log-msg: [Resume] Creating job (C:\Image_Mgmt_Workflows\OptimizeRasters\OR_20160414T113206660000.orjob)
log-msg: Copying non rasters/aux files (G:/workspace/MosaicDatasets/test/=>G:/workspace/MosaicDatasets/OptimizeRasterOvrConversion/)..
log-msg: CPY Ov_i04_L01_R00000BF9_C00000443.tif.msk
log-msg: CPY Ov_i04_L01_R00000BF9_C00000444.tif.msk
log-msg: CPY Ov_i04_L01_R00000BF9_C00000445.tif.msk
log-msg: CPY Ov_i04_L02_R000005FB_C00000221.tif.msk
log-msg: CPY Ov_i04_L02_R000005FB_C00000222.tif.msk
log-msg: CPY Ov_i04_L02_R000005FC_C00000221.tif.msk
log-msg: CPY Ov_i04_L02_R000005FC_C00000222.tif.msk
log-msg: CPY Ov_i04_L03_R000002FD_C00000110.tif.msk
log-msg: CPY Ov_i04_L03_R000002FD_C00000111.tif.msk
log-msg: CPY Ov_i04_L03_R000002FE_C00000110.tif.msk
log-msg: CPY Ov_i04_L03_R000002FE_C00000111.tif.msk
log-msg: CPY Ov_i04_L04_R0000017E_C00000088.tif.msk
log-msg: CPY Ov_i04_L04_R0000017F_C00000088.tif.msk
log-msg: CPY Ov_i04_L05_R000000BF_C00000044.tif.msk
log-msg: CPY Ov_i04_L06_R0000005F_C00000022.tif.msk
log-msg: CPY Ov_i04_L07_R0000002F_C00000011.tif.msk
log-msg: Done.
log-msg: Converting..
log-msg: [Thread-1] Applying compression (G:/workspace/MosaicDatasets/test/Ov_i04_L01_R00000BF7_C00000443.tif)

Validate the Credentials

In the profile Tool when the user enters the credentials, there should be an option to validate them

Running optimize rasters script

I'm trying to run the Optimize Rasters script to generate a MRF which will reside in S3 from a directory of TIFF images (8-bit unsigned). However, I'm running into a warning which is causing the tool to fail 17 seconds into execution. The warning is as follows:

Executing: OptimizeRasters Imagery_to_MRF_LERC Local Profile " " C:\arcgis\ArcTutor\Raster\Data\Amberg_tif # "Amazon S3" pyadav brianmrftesting brianmrftesting/optimizerasters \sertao\rasterdrive\MRF_for_AWS_s3\OutputTempFolder_OR \sertao\rasterdrive\MRF_for_AWS_s3\RasterProxyOutputFolder \sertao\rasterdrive\MRF_for_AWS_s3\CacheFolder # "Mode mrf;RasterFormatFilter tif,tiff,TIF,TIFF,img,jp2,JP2,IMG,JPG,jpg,sid,SID;ExcludeFilter tmp,rrd,idx,lrc,mrf_cache,pjp,ppng,pft,pzp,ovr,aux.xml,aux,tfw,TFW,pjg;IncludeSubdirectories true;Compression LERC;Quality #;LERCPrecision #;BuildPyramids true;PyramidFactor #;PyramidSampling avg;PyramidCompression LERC;NoDataValue #;BlockSize 512;Scale #;KeepExtension false;Threads 4;GDAL_Translate_UserParameters #"

Start Time: Wed May 30 11:25:44 2018

Running script OptimizeRasters...

log-msg:Using output endpoint> https://brianmrftesting.s3-us-west-1.amazonaws.com/

log-critical:maximum recursion depth exceeded while calling a Python object

log-critical:Unable to initialize the (S3) upload module! Check module setup/credentials. Quitting..

log-status:[Failed!]

Completed script OptimizeRasters...

Succeeded at Wed May 30 11:25:59 2018 (Elapsed Time: 15.86 seconds)

I have checked to ensure that my setup/credentials are correct, but I'm unable to get past the error message.

Add support to take input as single file

Add support to take input as single file, if some case the file fails to convert, in that user would like to jsut convert that file, in that case, the command should take input as file or list of files

Creating clone MRF fails in some times

When you create clone MRF, some times it gives an error failed to open the dataset, add an check to retry it again, also add the support to log the failures

so that user knows which files have failed

Tool runs (kind of) but MRF seems empty

I am dealing with many DG Images that take up massive amounts of storage. I want to be able to use the OptimizeRaster tool to store the images in an s3 bucket, and use the MRF files locally in a mosaic dataset and eventually publish as an Image Service.

The tool runs for about an hour, and then fails. However, I am seeing a MRF file in my Clone directory, as well as files in the cache, temp and s3 directories. But when I open the MRF in ArcMap it is empty and has no spatial reference.

Has anyone else encountered something similar?

optimizeraster

When input data is coming from s3 bucket the pyramids for MRF are created externally

When input data is coming from s3 bucket the pyramids for MRF are created externally.

as a user i wanted to convert the tif files from s3 into MRF format and upload it back to the s3 bucket. I have also set the parameter to build pyramids. In the out pyramids are built as external files ( .ovr). for MRF it should have been embedded.

HTTP response code: 403 - Failed writing header

I have the raster files in S3 and I'm using an IAM role to access it. When I run the tool on raster proxy mode I'm getting 'HTTP response code: 403 - Failed writing header' error directly after trying to apply compression with the vsicurl command. I can confirm that there is no issues at all in accessing the files on S3 as all of the non imagery files can be accessed and downloaded to the local output folder. Below are the logs for more information

Log-path set to (c:\Users/xxx/desktop\image_mgmt_workflows\optimizerasters\logs\logs)
log-msg:version=v2.0.1j/20180412
log-msg:-clouddownload="true" -clouddownloadtype="amazon" -config="C:/Users/xxx/Desktop/Image_Mgmt_Workflows/OptimizeRasters/OptimizeRasters.xml" -input="sample" -inputbucket="igbuild-gis" -inputprofile="iamrole:gis-dev01-role" -mode="rasterproxy" -output="C:/Users/xxx/Desktop/RP2" -s3input="true" -tempinput="C:/Users/xxx/Desktop/temp"
log-msg:ExcludeFilter=[u'tmp', u'ovr', u'rrd', u'idx', u'lrc', u'mrf_cache', u'pjp', u'ppng', u'pft', u'pzp']
log-msg:BuildPyramids=true
log-msg:Compression=lerc
log-msg:Out_S3_ID=Out_S3_ID
log-msg:KeepExtension=True
log-msg:BlockSize=512
log-msg:Out_S3_DeleteAfterUpload=True
log-msg:Out_S3_Bucket=Out_BucketName
log-msg:LogPath=C:\Users\xxx\Desktop\Image_Mgmt_Workflows\OptimizeRasters\logs
log-msg:PyramidFactor=2 4 8 16 32 64
log-msg:Out_S3_Upload=F
log-msg:Threads=2
log-msg:Mode=rasterproxy
log-msg:RasterFormatFilter=[u'tif', u'TIF', u'mrf']
log-msg:Out_S3_Secret=Out_S3_secret_key
log-msg:PyramidCompression=JPEG
log-msg:Quality=85
log-msg:IncludeSubdirectories=True
log-msg:Out_S3_ParentFolder=Out_S3Partent_folder
log-msg:[Resume] Creating job (C:\Users\xxx\Desktop\Image_Mgmt_Workflows\OptimizeRasters\OR_20180419T052023932000.orjob)
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7045000.ERS
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7045000.mrf.aux.xml
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7045000.pjg
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7045000.prj
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7045000.tab
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7046000.ERS
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7046000.mrf.aux.xml
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7046000.pjg
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7046000.prj
log-msg:[S3-Pull] C:/Users/xxx/Desktop/RP2/716000-7046000.tab
log-msg:
Processing caching operations...
log-msg:Applying compression (/vsicurl/http://igbuild-gis.s3.amazonaws.com/sample/716000-7045000.tif)
log-msg:Applying compression (/vsicurl/http://igbuild-gis.s3.amazonaws.com/sample/716000-7045000.mrf)
log-msg:warnings/errors:
log-msg:ERROR 11: HTTP response code: 403 - Failed writing header
log-msg:Status: (FAILED).
log-msg:Applying compression (/vsicurl/http://igbuild-gis.s3.amazonaws.com/sample/716000-7046000.mrf)
log-msg:warnings/errors:
log-msg:ERROR 11: HTTP response code: 403 - Failed writing header
log-msg:Status: (FAILED).
log-msg:Applying compression (/vsicurl/http://igbuild-gis.s3.amazonaws.com/sample/716000-7046000.tif)
log-msg:warnings/errors:
log-msg:ERROR 11: HTTP response code: 403 - Failed writing header
log-msg:Status: (FAILED).
log-msg:warnings/errors:
log-msg:ERROR 11: HTTP response code: 403 - Failed writing header
log-msg:Status: (FAILED).
log-msg:Done..

log-status:[Failed!]
Time taken> 5.614s

Done..

Use custom aws_endpoint_url

When use custom aws_endpoint_url: http://oss-cn-hongkong.aliyuncs.com (this is AWS S3 Compatible),
I found that the code OptimizeRastersUI.getAvailableBuckets() or ProfileEditorUI.validateCredentials() can not get _availableBuckets,may be because the code:
con = session.resource('s3')
lost parameter "endpoint_url=url"?

To support tar, tar.gz in future.

To help users to feed in .tar / .tar.gz directly into OptimizeRasters to work with compressed rasters.
Presently users need to use external tools such as (Tartool.exe and others) to unzip data from (USGS/PGC/e.t.c.) before they could proceed with OptimizeRasters to complete their workflows.

Problem using Imagery_to_MRF_LERC from S3 to S3

I am using version 20160503 of OptimizeRasters. I copied several GB worth of imagery from my local server to a S3 bucket using DragonDisk. I then tried using OptimizeRasters with the Imagery_to_MRF_LERC process to convert the S3 imagery to MRF in another S3 bucket. The process fails saying that access is denied on the source files. I have verified that all can read from the bucket. The log and orjob files are attached.
OptimizeRasterLog_5-4-16.zip

Can't initialize S3 from ArcGIS 10.4 machine

I used OptimizeRasters on a local machine running ArcGIS 10.3.1 to convert some DG WV2 files to MRF and copy them to S3. Then, from an EC2 instance running ArcGIS 10.4, I attempted to clone the MRF files on S3 to my EBS on the EC2 instance. I get errors that say: Unable to initialize the (S3) upload module! Check module setup/credentials. Quitting.. I've tried other templates to work with S3 and get similar results. My credential work because I can pick the S3 bucket from the drop downs in the UI.

Raster proxies created using the cog conversion have extension as tiff.congtiff

This issue happens when the raster proxy path is given as one of the option while converting the files. Haven't really tried with just "CreateRasterProxies" Template.
The 2 additional issues related to the the above are:
1.The source path in the raster proxy also has a file with tif.cogtiff extention.
2.The raster proxy directory is getting copied to the S3 bucket.

Enhancement: Have a built in resume function for batch files.

Have a list of files written out for each batch file that is run.
The file list that is written should contain a list of processed / failed files.
The program should write to the list on the following instances.

  1. Success entire process.. D/L - Conversion - Upload
  2. Failed - Conversion
  3. Failed - Upload.

To Resume..
Run the batch file. The program should check if the resume text file exists. If exists.. read file list..
For each file in the process...
a. check file list. If file exist as succeeded then skip download.
b. If file failed at conversion.. check temp. If file exist then proceed to upload. / If not exist.. download / convert and upload.
c. if failed at upload. check temp. If file exist then proceed to upload. / if not exist.. download / convert and upload.

GUI Tool not working - Still works on console

I'm trying to run the tool inside of ArcGIS 10.5. I want to create RasterProxyFiles from .tif files inside of an AWS S3 bucket and get the following error message:

log-critical: Invalid input S3 bucket (--bucket-name--)/credentials
log-critical: Unable to initialize S3-storage! Quitting..

The thing I don't understand is that if I run the tool on the console, using the same parameters (taken from the log-file of the GUI approach) everything works fine and a RasterProxyFile is created.

There is one Policy on the S3 bucket active which assigns the s3:GetObject action to our instance. Does it need more policies?

Thanks in advance!

Optimizing 16 bit data

I am working with a large amount of 16 bit satellite imagery data. I ran into some obstacles when I tried to use OptimizeRaster “Imagery_to_TIF_JPEG” config file to optimize the images. My questions are as follows:

  1. Is there a template that would allow users to rescale 16bit to 11bit and also handle 4 band and single band imagery?
  2. Optimize raster seems to build internal overviews by default. It would be good to have an option in the “Advanced” section to switch to “external overviews.”

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.