GithubHelp home page GithubHelp logo

north-road / qgis-processing-r Goto Github PK

View Code? Open in Web Editor NEW
63.0 9.0 14.0 2.33 MB

QGIS Processing R Provider Plugin

Home Page: https://north-road.github.io/qgis-processing-r/

License: GNU General Public License v3.0

Makefile 2.24% Python 90.81% R 4.47% Shell 2.48%
qgis qgis-plugin r

qgis-processing-r's Introduction

qgis-processing-r

Test plugin

Processing R Provider Plugin for QGIS 3.x

Website

Plugin website.

qgis-processing-r's People

Contributors

3nids avatar alexbruy avatar elpaso avatar fsdias avatar gavg712 avatar ghtmtt avatar gustry avatar jancaha avatar jef-n avatar m-kuhn avatar mach0 avatar mbernasocchi avatar ninsbl avatar nyalldawson avatar rhurlin avatar rldhont avatar thomasg77 avatar tmizu23 avatar volaya 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qgis-processing-r's Issues

select vs enum parameters

In old R scripts the parameter:

##Data_Transformation=selection normal;log10;ln;sqrt;exp

was used. In the new provider this should be changed to:

##Data_Transformation=enum normal;log10;ln;sqrt;exp

Reading or writing vectors other than ESRI Shape not possible

Hi,
took me a while till I figured out, that the R-provider does not handle input other that ESRI Shape files. Loading gpkg or sqlite failed.
The same applies to the output. Took me again a while to figure out that I have to manually pick shp and save to file to get results.

Linux Mint 19.2, QGIS 3.10

Field name with parentheses or spaces

Hi,

If the attribute name contains parentheses or spaces, R replaces them with dots.
However, Layer[[Field]] is null because the name of the field before the replacement is used.

the log is

Input parameters:
{ 'Field' : 'H (m)', 'Layer' : 'C:/Users/username/Documents/サンプル.gpkg|layername=サンプル' }

R execution commands
options("repos"="http://cran.at.r-project.org/")
.libPaths("C:/Users/username/AppData/Roaming/QGIS/QGIS3/profiles/default/processing/rlibs")
tryCatch(find.package("sf"), error = function(e) install.packages("sf", dependencies=TRUE))
library("sf")
tryCatch(find.package("raster"), error = function(e) install.packages("raster", dependencies=TRUE))
library("raster")
Layer <- st_read("C:/Users/username/Documents/サンプル.gpkg", layer = "サンプル", quiet = TRUE, stringsAsFactors = FALSE)
Field <- "H (m)"
print(names(Layer))

R execution console output
Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
要求されたパッケージ sp をロード中です
[1] "H" "H..m." "geometry"
警告メッセージ:
パッケージ 'raster' はバージョン 3.6.3 の R の下で造られました
Execution completed in 1.40 seconds
Results:
{}

plugin version 1.0.6 do not works

hello,

I am trying to use the processing R provider but version 1.0.6 seems to not recognize any input according to its reference:

https://docs.qgis.org/2.14/en/docs/training_manual/processing/r_syntax.html

if the project is not continued, can you please inform it to avoid losing time with its bugs? otherwise check these: the plugin do not recognize any variable (v 1.0.6), it is not possible to declare a selection (in any version), documentation is not enough informative (e.g. how can I declare a vector of strings such as: c("a","b","c")?.

Thanks for your support.

Missing "Get R scripts from on-line scripts collection"

This is an extremely useful plugin!
I am trying to update the QGIS documentation on the use of R with QGIS 3. I and can't find R-> Tools or its entry Get R scripts from on-line scripts collection in the processing toolbox (they were available when using R in QGIS 2).
Am I missing something? Will this useful feature be implemented? Are there any workarounds?
Are the scripts available somewhere?

Error handling when R script error occurs

I have been using the Example with file/table output as a starting point to learn how to implementing my own R script.

My R provider setup is as follows: (R is not installed in Program Files due to administration rights), and I am using QGIS R Provider version 2.2.1.
image

In QGIS LTR 3.10.3 when running the Example with file/table output script copied directly from the webpage I get
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\xxx\\AppData\\Local\\Temp/processing_08962aa0287b4dd18d1d2228ea8cc510/6df35e991d7a4a8ab13ec4115308e5e9/processing_values.txt' error (log file: QGIS_LTR_3.10.3_Rplugin.log ).
I think this is triggered when an error occurs within the R script. In this case the error is Error: '\U' used without hex digits in character string starting ""C:\U".

I have also tried this in QGIS 3.12.3 in which for some reason the hex digits error does not occur, so I forced an R script error by changing the last line to Stat <- Stat_fil and got the same error (see log: QGIS_3.12.3_Rplugin.log
)

Is this the expected behaviour from the Processing R plugin when an error within the R script is encountered?

QGIS 3.4 does not recognize Processing R provider 1.0.6 syntax

I am not a developer, I am a user of the plugin “Processing R provider”, but from July 30 this year, I can not use anymore. I currently use windows 10 and windows 8, QGIS 3.4.6 and R 3.6, on both operating systems when I try to load a layer (shapes, raster, tables and etc) an error appears "This algorithm cannot be executed 😦
This script has a syntax error. Problem with line: ## Y = Field Layer "
I already searched among users and they also can’t use the plugin in QGIS version 3.4.6. I hope I can count on your help. Thanks for listening.

How to get an R object with Field numeric multiple Layer

Hi,

I am trying to migrate my FactoQGIS script (https://github.com/ESO-Rennes/FactoQGIS) to QGIS 3.4

I had a previous issue which was solved (#32)

I face now a problem to get in an R object the list of the fields the user selects in the parameter "Field numeric multiple Layer"

Example :

##FactoQGIS=group
##Layer=Vector
##Active_variables_Must_be_numeric=Field numeric multiple Layer

To assign to a character string the quantitative active variables selected by the user
ListVar<- as.character(Active_variables_Must_be_numeric)
ListVar

The result is
[1] ""

I can't retrieve the names of the fields into a R object.
I tried with other functions as.numeric, as.name, as.factor, etc....
It doesn't work.
Any idea ?
Thanks !

UnicodeDecodeError

Hi,

An error occurs when selecting a layer that contains Japanese characters in the file path.
The reason is probably because the R script will be generated in UTF-8 but R will try to interpret it as Shift_JIS or CP932 (Japanese encoding).
OS: Windows10 (locale: Japanese)

Sample code

##Test=group
##Layer structure=name
##Layer=vector
str(Layer)

and log

QGIS version: 3.12.0-București
QGIS code revision: cd141490ec
Qt version: 5.11.2
GDAL version: 3.0.4
GEOS version: 3.8.0-CAPI-1.13.1 
PROJ version: Rel. 6.3.1, February 10th, 2020
R version: 2.0.0
Processing algorithm…
Algorithm 'Layer structure' starting…
Input parameters:
{ 'Layer' : 'C:/Users/username/Documents/サンプル.gpkg|layername=サンプル' }

R execution commands
options("repos"="http://cran.at.r-project.org/")
.libPaths("C:/Users/username/AppData/Roaming/QGIS/QGIS3/profiles/default/processing/rlibs")
tryCatch(find.package("sf"), error = function(e) install.packages("sf", dependencies=TRUE))
library("sf")
tryCatch(find.package("raster"), error = function(e) install.packages("raster", dependencies=TRUE))
library("raster")
Layer <- st_read("C:/Users/username/Documents/サンプル.gpkg", layer = "サンプル", quiet = TRUE, stringsAsFactors = FALSE)
str(Layer)

R execution console output
[1] "C:/Users/username/bin/R-Portable/App/R-Portable/library/sf"
Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3
[1] "C:/Users/username/AppData/Roaming/QGIS/QGIS3/profiles/default/processing/rlibs/raster"
要求されたパッケージ sp をロード中です
警告メッセージ:
パッケージ 'raster' はバージョン 3.6.3 の R の下で造られました
Traceback (most recent call last):
File "C:/Users/username/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\processing_r\processing\algorithm.py", line 317, in processAlgorithm
output = RUtils.execute_r_algorithm(self, parameters, context, feedback)
File "C:/Users/username/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\processing_r\processing\utils.py", line 258, in execute_r_algorithm
for line in iter(proc.stdout.readline, ''):
UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 3: illegal multibyte sequence

Execution failed after 1.39 seconds

Loading resulting layers
Algorithm 'Layer structure' finished

If you fix it as follows, the error will not occur.

--- utils.py.orig	Tue Apr 14 18:55:18 2020
+++ utils.py	Wed Apr 15 09:17:59 2020
@@ -238,6 +238,9 @@
 
         script_filename = RUtils.create_r_script_from_commands(script_lines)
 
+        script_lines = ['options(encoding = "UTF-8")', 'source("%s", encoding = "UTF-8")' % script_filename]
+        script_filename = RUtils.create_r_script_from_commands(script_lines)
+
         # run commands
         command = [
             RUtils.path_to_r_executable(script_executable=True),

Layer paths Windows 64

Fantastic job! This really widens the field of possibilities!

I encountered a classic R issue with layer paths on Windows (10-64bits) : they contain \

Error: '\U' used without hex digits in character string starting "'C:\U" Execution halted

In the meantime, a little trick to dodge that is to drag the layers into QGIS rather than adding them by the traditional method (Layer > Add Layer...). In this way, the layer paths will have / and so you can use them.

Help file reading issue (possibly upstream problem)

Current problem causing tests to fail i.e. here caused by this test line seems to be an upstream issue. (Or it could be misunderstang of what should really happen.)

The problem, the way I undrestand, it is that if you load help file for algorithm it does not associate the help text with individual paramaters of the algorithm.

The help string works fine for whole algorithm but not for specific parameter.

It is probably not necessary to even test this, it would be quite ok to remove this part of test. But it seems to be worth knowing about as it might be upstream problem.

Console output very verbose

> as an output writes a lot of useless? strings in the output. In the following example the real output starts from T_MAX.

Non really an issue, just a report ;)

[1] "/home/matteo/.local/share/QGIS/QGIS3/profiles/matteo/processing/rlibs/rgdal"
[1] "/home/matteo/.local/share/QGIS/QGIS3/profiles/matteo/processing/rlibs/raster"
Loading required package: sp
rgdal: version: 1.3-6, (SVN revision 773)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 2.3.2, released 2018/09/21
Path to GDAL shared files: /usr/share/gdal
GDAL binary built with GEOS: TRUE
Loaded PROJ.4 runtime: Rel. 5.2.0, September 15th, 2018, [PJ_VERSION: 520]
Path to PROJ.4 shared files: (autodetected)
Linking to sp version: 1.3-1
OGR data source with driver: ESRI Shapefile
Source: "/home/matteo/lavori/corsi/QGIS/QGIS3/QGIS_data", layer: "punti"
with 100 features
It has 14 fields
Integer64 fields read as strings: ID ROTAZ DIMENS VALORE
T_MAX
Sum: 2560.0
Count: 100.0
Unique values: 10.0
Minimum value: 16.0
Maximum value: 33.0
Range: 17.0
Mean value: 25.6
Median value: 29.0
Standard deviation: 6.6
NA count: 0.0

[Windows SO][Bug?] Detect R folder

Hi, Nyall
The plugin find the right folder but give the dialog with don't detect.
I have my R folder in the Program Files.

I clean the default profile to have a clean environment and install r-processing plugin but i have the same issue from version 0.0.2

@PedroVenancio and I are testing the r-processing for Windows.

Point input does not become an R variable

When you use the point input to capture a coordinate from the map in QGIS, the string produced by the coordinate capture does not become an R variable to be used in the code. I had to create another text field and ask the user to copy and paste the coordinates in this field that I could read. Please, fix this issue.

Build website using GitHub Actions instead Travis

I just realised that building and deploying of the doc website using Travis is probably a little bit problematic. Since pull requests cannot deploy into the main repo, their Travis build automatically fails, which is problematic since it requires manual check of Travis to figure out the reason for the failure (likely website deploy issue).

I recently tested Github Actions which allow all sorts of automatic tasks to be performed including doc release. It is also much faster than Travis build as it will perform just website build and deployment and it can be also configured so, that it will only take commits that affect specific repository.

I see it as a reasonable alternative. I have tested it and looks quite ok. If there are no objections I will do the move tomorrow.

Testing boolean syntax

Small issue but achievable in another way.

One custom R syntax way to test if a variable is TRUE or FALSE is:

v = FALSE

if(!v){
  print('false false')
}

in QGIS 2.x this worked while now not and it gives an error:

Error in !Regression : invalid argument type
Execution halted

This could be easily achieved by changing the syntax to:

v = FALSE

if(v == FALSE){
  print('false false')
}

just reporting for compatibility with old scripts. We can change the QGIS docs with the updated syntax to use

Not able to load any vector files

With all the files I tried (in attach a zip of one simple point layer) I have always this error:

#data preparation
df<-as.data.frame(Layer)
FX<-Layer[[Variable]]

hist(FX)
dev.off()
R execution console output
[1] "/home/matteo/.local/share/QGIS/QGIS3/profiles/tm/processing/rlibs/rgdal"
[1] "/home/matteo/.local/share/QGIS/QGIS3/profiles/tm/processing/rlibs/raster"
Loading required package: sp
rgdal: version: 1.3-6, (SVN revision 773)
Geospatial Data Abstraction Library extensions to R successfully loaded
Loaded GDAL runtime: GDAL 2.3.2, released 2018/09/21
Path to GDAL shared files: /usr/share/gdal
GDAL binary built with GEOS: TRUE
Loaded PROJ.4 runtime: Rel. 5.2.0, September 15th, 2018, [PJ_VERSION: 520]
Path to PROJ.4 shared files: (autodetected)
Linking to sp version: 1.3-1
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv, :
Cannot open layer
Calls: readOGR -> suppressMessages -> withCallingHandlers -> ogrInfo
Execution halted

samples.zip

Include documentation in plugin repository

As mentioned here #41. The documentation should move from QGIS manul to its own pages.

My suggestion is to take the existing documentation, turn it into mkdocs website and manage the deployment to github pages through travis.

Does it seem like a reasonable idea?

Conflict between sf and sp packages

I'm having trouble using gstat in QGIS because Processing R Provider ignores the functions of the sp package because it uses sf by default
Even calling sp Processing interprets the functions as sf resulting in an error

create new .rsx file

I'm finding the same buggy editor problem noted in November. The Create New R Script button in the Processing Toolbox forces my rsx script to have a .py extension. Can it be set to store it as an .rsx file in the appropriate rscripts directory?
Also, earlier versions of this plug-in were aware of selections in vector datasets, and would process only the selected records. The current version doesn't seem to do this. It'd be great if that function was back.

Default and set output directory for R Scripts

This feature request comes after a question I posted on stack exchange:

https://gis.stackexchange.com/questions/311911/is-it-possible-to-default-an-output-directory-for-r-scripts-in-qgis-3-4-4/311971#311971

I would love the ability to be able to set the default output directory of any outputs specified in the R Script. I am sorry to say I have limited to no knowledge of coding but something along the lines of this would be great:

##Output=output vector ("Project directory")

Perhaps having the ability to set the default directory to the QGIS project directory and and also being able to set a specified path.

I really appreciate the work you do on this and understand that things like this can wait.

Error using script syntax _output folder then browsing to folder.

I am having problems using the output folder syntax and then browsing for a folder from the dialog.
My script is

##R Version2=name
##Out_fold=output folder
##Out_file=output file ##noprompt
##dont_load_any_packages

Out_file <- file.path(Out_fold, "test1.txt")

fileConn <- file(Out_file)
writeLines(R.version.string, fileConn)
close(fileConn)

By default when I browse for a folder the path loads like
image

When I run the tool, I am getting is Error: '\d' is an unrecognized escape in character string starting ""C:\d" (see full log: QGIS_3.12.3_outputfolder.log )

In QGIS 3.12.3 if I were to manually change the path in the dialog to C:\\data\\processing or C:/data/processing I do not get this error, but for QGIS QGIS LTR 3.10.3 I get Error: '\U' used without hex digits in character string starting ""C:\U" for both.

I have tested this with QGIS LTR 3.10.3 & QGIS 3.12.3 and I am running R Provider version 2.2.1.

Using system folder still cause a lot of package downloading

With the Use user library folder instead of system libraries unchecked still cause a lot of package downloading.

The default R installation has 32 packages while the QGIS rlib has 114 libraries.

When using system libs QGIS R provider still downloads all the remaining libraries

Fix build

The travis build seems to be down.

Blank not allowed between "=" and "output" in the "header"

I have copied the r scripts from QGIS 2 to QGIS 3. They show up in the processing toolbar as before. Some run but most don't (for various reasons probably).
I have noticed is that in the new version of the provider, the following causes an "Error executing algorithm":
##Output= output vector
While the following is fine:
##Output=output vector
In QGIS 2 both variants worked.

##distance= number 11
works fine in the new version, so it seems not to apply to all entries in the "header".

I am on Ubuntu 18.04. R version 3.4.4.

Is this a bug or a feature?

Example plot script not working with integers

I guess it is related also for other custom plot types. The example plot script fails saying:

Error in hist.default(FX) : 'x' must be numeric
Calls: hist -> hist -> hist.default
Execution halted

if the field chosen is integer, no problem if is real number.

Enum parameter output is string and not number

Not a big issue, but the output of enum (or selection) is a * numeric string* like "0" that has to be converted afterwards with as.numeric function.

e.g.

##model=selection Sph;Exp;Gau;Mat

Models<-c("Sph","Exp","Gau","Mat")
model2<-Models[model+1]
>model

--->Error

while

##model=selection Sph;Exp;Gau;Mat

Models<-c("Sph","Exp","Gau","Mat")
int_model<-as.numeric(model)
model2<-Models[int_model+1]
>model

2

R Libraries are really slow to install on windows

I am trying to use the R processing plugin with my R scripts. I have found that installing libraries takes a long time. The libraries I'm using are "sp","gstat","fields","mgcv","spTimer","rgdal","raster","gdalUtils","stringr".

Installing these libraries in QGIS using the R plugin (see Import_R_Libs.rsx.txt) takes over 30mins - I stopped it before it finished.

I also tried adding the installation within my R-Script (see Install_R_Libs.rsx.txt) and it also took over 30mins.

However installing from within RStudio using code in Install_R_Libs.rsx normally takes around 2mins or less.

While trying to find a faster solution I found that creating a windows batch file and using subprocess in a python script takes around 2mins as well.

This doesn't seem right. Am I doing something wrong? Is there a way to speed up the installation using the R processing plugin without having to resort to the batch file-python method?

I am using QGIS 3.18, R 4.0.3 and R processing plugin 3.0.0 on Windows 10 and my plugin settings are
R-Processing_Plugin_Settings

Thanks

Processing R - Ubuntu linux

Running processing R under linux I found this error:

TypeError __init__() got an unexpected keyword argument 'encoding'

Under check_r_installed()
Line 315

for the utils.py
Did you tested che plugin under linux?
Thanks

Conflicting version information for R vs the Processing R Provider

Thank you for making the Processing R Provider plugin available.

I am creating a front end for a R script and there was some confusion about the version of R that is being used when I sent around the resulting logs.

On running, it shows the R version as 2.2.0. I believe that this is the version of the Processing R Provider plugin, not the version of R being used, in my case 3.6.1.

QGIS version: 3.10.3-A Coruña
QGIS code revision: 0e1f846438
Qt version: 5.11.2
GDAL version: 3.0.4
GEOS version: 3.8.0-CAPI-1.13.1 
PROJ version: Rel. 6.3.1, February 10th, 2020
**R version: 2.2.0**

Is it possible to have this text re-worded to clearly show that the Processing R Provider plugin version is 2.2.0 and the installed version of R is 3.6.1 so as to avoid confusion in logs?

Graphic output does not showing up in QGIS 3.8

Hi,

thank you very much for the great job with this plugin. It helps a lot. I am just wondering if something wrong either with Windows 10 64bit or QGIS 3.8 that the Plot Output is simply a blank page. I tried with my script and also the example script delivered with the plugin, both had the same problem. Console output works normal.

By the way, I saw that there was a closed issue with path problem. I still have this problem, that the path to File (variable input) is not converted from "" to "/" and R cannot work with that. My solution is simply converting them by using R command.

Regards,
Quang

Manually add R folder

On Mac OSX, was necessary to identify the R folder manually in Processing options, perhaps this should be a default?

/usr/local/bin

multiple field layer selection no longer works

Hi, thanks a lot for this QGIS R processing provider

In the QGIS 2.18 the following syntax worked fine :
##Active_variables_Must_be_numeric=multiple Field Layer

It allowed to select fields from a layer by picking them in a left list through a GUI.
The selected fields used to appear in a right list.

This function no longer works.

The full script is available here :
https://github.com/ESO-Rennes/FactoQGIS/blob/master/Typological_Analysis_PCA_and_HAC.rsx

Thanks for your help.

Permission denied on FreeBSD for version 1.0.1 on QGIS 3.5.0-Master

I am on FreeBSD with QGIS 3.5.0-Master and 'Processing R Provider' plugin version 1.0.1. It installs fine. My R version is at /usr/local/lib under root rights. Personally installed R libraries (not from R itself) are in my user section under /usr/home/rhurlin/R/library.

Right after starting QGIS, which loads installed plugins, there are three Python warnings in the log messages (please read on after these three warnings for a possible reason and an error description):

From log messages 'Python warning'

2019-01-26T12:27:41     WARNING    warning:/usr/local/share/qgis/python/plugins/processing/gui/wrappers.py:1777: DeprecationWarning: invalid escape sequence \A
              match = re.search('(?:\A|[^0-9]){}(?:\Z|[^0-9]|)'.format(v), opt)
             
             traceback: File "", line 1, in 
              File "/usr/local/share/qgis/python/qgis/utils.py", line 335, in startPlugin
              plugins[packageName] = package.classFactory(iface)
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/__init__.py", line 22, in classFactory
              from .r_plugin import RProviderPlugin
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/r_plugin.py", line 21, in 
              from processing_r.processing.provider import RAlgorithmProvider
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/provider.py", line 26, in 
              from processing.core.ProcessingConfig import ProcessingConfig, Setting
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/__init__.py", line 29, in 
              from processing.tools.general import * # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/tools/general.py", line 39, in 
              from processing.core.Processing import Processing
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/core/Processing.py", line 58, in 
              from processing.algs.qgis.QgisAlgorithmProvider import QgisAlgorithmProvider # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py", line 81, in 
              from .IdwInterpolation import IdwInterpolation
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/IdwInterpolation.py", line 44, in 
              from processing.algs.qgis.ui.InterpolationWidgets import ParameterInterpolationData, ParameterPixelSize
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py", line 49, in 
              from processing.gui.wrappers import WidgetWrapper, DIALOG_STANDARD
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 674, in exec_module
              File "", line 781, in get_code
              File "", line 741, in source_to_code
              File "", line 219, in _call_with_frames_removed
             
2019-01-26T12:27:41     WARNING    warning:/usr/local/share/qgis/python/plugins/processing/gui/wrappers.py:1792: DeprecationWarning: invalid escape sequence \A
              match = re.search('(?:\A|[^0-9])([0-9]+)(?:\Z|[^0-9]|)', self.widget.options[i])
             
             traceback: File "", line 1, in 
              File "/usr/local/share/qgis/python/qgis/utils.py", line 335, in startPlugin
              plugins[packageName] = package.classFactory(iface)
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/__init__.py", line 22, in classFactory
              from .r_plugin import RProviderPlugin
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/r_plugin.py", line 21, in 
              from processing_r.processing.provider import RAlgorithmProvider
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/provider.py", line 26, in 
              from processing.core.ProcessingConfig import ProcessingConfig, Setting
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/__init__.py", line 29, in 
              from processing.tools.general import * # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/tools/general.py", line 39, in 
              from processing.core.Processing import Processing
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/core/Processing.py", line 58, in 
              from processing.algs.qgis.QgisAlgorithmProvider import QgisAlgorithmProvider # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py", line 81, in 
              from .IdwInterpolation import IdwInterpolation
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/IdwInterpolation.py", line 44, in 
              from processing.algs.qgis.ui.InterpolationWidgets import ParameterInterpolationData, ParameterPixelSize
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py", line 49, in 
              from processing.gui.wrappers import WidgetWrapper, DIALOG_STANDARD
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 674, in exec_module
              File "", line 781, in get_code
              File "", line 741, in source_to_code
              File "", line 219, in _call_with_frames_removed
             
2019-01-26T12:27:41     WARNING    warning:/usr/local/lib/python3.6/site-packages/PyQt5/uic/objcreator.py:152: DeprecationWarning: 'U' mode is deprecated
              plugin = open(filename, 'rU')
             
             traceback: File "", line 1, in 
              File "/usr/local/share/qgis/python/qgis/utils.py", line 335, in startPlugin
              plugins[packageName] = package.classFactory(iface)
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/__init__.py", line 22, in classFactory
              from .r_plugin import RProviderPlugin
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/r_plugin.py", line 21, in 
              from processing_r.processing.provider import RAlgorithmProvider
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/provider.py", line 26, in 
              from processing.core.ProcessingConfig import ProcessingConfig, Setting
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 941, in _find_and_load_unlocked
              File "", line 219, in _call_with_frames_removed
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/__init__.py", line 29, in 
              from processing.tools.general import * # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/tools/general.py", line 39, in 
              from processing.core.Processing import Processing
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/core/Processing.py", line 58, in 
              from processing.algs.qgis.QgisAlgorithmProvider import QgisAlgorithmProvider # NOQA
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/QgisAlgorithmProvider.py", line 81, in 
              from .IdwInterpolation import IdwInterpolation
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/IdwInterpolation.py", line 44, in 
              from processing.algs.qgis.ui.InterpolationWidgets import ParameterInterpolationData, ParameterPixelSize
              File "/usr/local/share/qgis/python/qgis/utils.py", line 672, in _import
              mod = _builtin_import(name, globals, locals, fromlist, level)
              File "", line 971, in _find_and_load
              File "", line 955, in _find_and_load_unlocked
              File "", line 665, in _load_unlocked
              File "", line 678, in exec_module
              File "", line 219, in _call_with_frames_removed
              File "/usr/local/share/qgis/python/plugins/processing/algs/qgis/ui/InterpolationWidgets.py", line 93, in 
              WIDGET, BASE = uic.loadUiType(os.path.join(pluginPath, 'interpolationdatawidgetbase.ui'))
              File "/usr/local/lib/python3.6/site-packages/PyQt5/uic/__init__.py", line 198, in loadUiType
              winfo = compiler.UICompiler().compileUi(uifile, code_string, from_imports, resource_suffix, import_from)
              File "/usr/local/lib/python3.6/site-packages/PyQt5/uic/Compiler/compiler.py", line 53, in __init__
              qtproxies.QtWidgets, CompilerCreatorPolicy())
              File "/usr/local/lib/python3.6/site-packages/PyQt5/uic/uiparser.py", line 177, in __init__
              self.factory = QObjectCreator(creatorPolicy)
              File "/usr/local/lib/python3.6/site-packages/PyQt5/uic/objcreator.py", line 85, in __init__
              if self.load_plugin(filename, plugin_globals, plugin_locals):
              File "/usr/local/lib/python3.6/site-packages/PyQt5/uic/objcreator.py", line 152, in load_plugin
              plugin = open(filename, 'rU')

If I try to run the 'test' script, I get a breakage with the following error:

Stack trace

An error has occurred while executing Python code: 

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/R' 
Traceback (most recent call last):
  File "/usr/local/share/qgis/python/plugins/processing/gui/ProcessingToolbox.py", line 223, in executeAlgorithm
    ok, message = alg.canExecute()
  File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/algorithm.py", line 272, in canExecute
    msg = RUtils.check_r_is_installed()
  File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/utils.py", line 316, in check_r_is_installed
    universal_newlines=True) as proc:
  File "/usr/local/lib/python3.6/subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "/usr/local/lib/python3.6/subprocess.py", line 1364, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/R'

Python version: 3.6.8 (default, Jan  1 2019, 14:25:16) [GCC 4.2.1 Compatible FreeBSD Clang 7.0.1 (tags/RELEASE_701/final 349250)] 
QGIS version: 3.5.0-Master Master, exported 

Python Path:
/usr/local/share/qgis/python
/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python
/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins
/usr/local/share/qgis/python/plugins
/usr/local/lib/python36.zip
/usr/local/lib/python3.6
/usr/local/lib/python3.6/lib-dynload
/usr/local/lib/python3.6/site-packages
/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python

Log Messages 'Python error'

2019-01-26T12:14:16     WARNING    Traceback (most recent call last):
              File "/usr/local/share/qgis/python/plugins/processing/gui/ProcessingToolbox.py", line 223, in executeAlgorithm
              ok, message = alg.canExecute()
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/algorithm.py", line 272, in canExecute
              msg = RUtils.check_r_is_installed()
              File "/home/rhurlin/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_r/processing/utils.py", line 316, in check_r_is_installed
              universal_newlines=True) as proc:
              File "/usr/local/lib/python3.6/subprocess.py", line 729, in __init__
              restore_signals, start_new_session)
              File "/usr/local/lib/python3.6/subprocess.py", line 1364, in _execute_child
              raise child_exception_type(errno_num, err_msg, err_filename)
             PermissionError: [Errno 13] Permission denied: '/usr/local/lib/R'

Because of the three warnings during the loading of the module, I assume there is a bigger problem than only access rights for /usr/local/lib?

Any help is really appreciated, many thanks.

No activation option in Qgis

Sorry there does not appear to be away of changing the title of the post.

Running Qgis 3.8.2 on Ubuntu 19.04
Version installed 1.0.7

Despite R being installed and the Spatstat package, the plug in does not recognise the appropriate folder.

R Folder /usr/bin gives scatterplot though.

What would be the path for the R scripts on a Linux system?

Unable to run any R script

Not sure if this is a bug or if I am missing something, but I am unable to run any R scripts whatsoever. My steps are:

1 Start with an empty QGIS project and add a test vector layer
2 Create a new R script, such as https://north-road.github.io/qgis-processing-r/ex_table_output/
3 Hit "Run script"
4 Configure the pop up window for data source etc
5 Hit "Run" to run the script

Nothing happens after #5 and the window remains open. What am I missing?

Tried on:
QGIS 3.14.16 and master
Processing R provider 2.2.1
R 4.0.3
Windows 10, 64 bit

[Feature idea] Input with predefined set of values

I think that it would be useful to allow inputs that only take values from a specified set of values.

I am thinking about a definition like:
##variable=[a,b,c,d]
Which should create GUI of SelectBox with four options.

This could be highly beneficial for R functions with various computation algorithms (i.e. correlation have several possible methods ("pearson", "kendall", "spearman")). This could make R scripts more general through the possibility to expose these options to user instead of hardcoding them in the rsx script.

I see that it is likely to be done using QgsProcessingParameterEnum, but I am wondering if there are some examples to look at. Any tips @nyalldawson ?

To read csv

I would like to read a csv layer (which I have drag and dropped onto QGIS window) by a rsx.
Below is a sample code which takes csv file (fields: X, Y, Z) and rasterize it :

##Raster Analysis=group
##CSV= table
##X=     Field CSV
##Y=     Field CSV
##Z=     Field CSV
##EPSG=number 4326
##Output=output raster
library(raster)
DATA <- data.frame(X= CSV[[X]], Y= CSV[[Y]], Z= CSV[[Z]])
r <- rasterFromXYZ(DATA)
crs(r) <- paste0("+init=epsg:", EPSG)
Output <- r

When I run the code, it returns an Execution error message: This script has a syntax error. Problem with line: CSV= table.

I thought table worked in previous QGIS. What is the currently valid keyword to read csv? Thank you.

Ubuntu 18.04 - Python error right after installation

Couldn't load plugin 'processing-r' due to an error when calling its classFactory() method

ModuleNotFoundError: No module named 'r'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/qgis/utils.py", line 335, in startPlugin
plugins[packageName] = package.classFactory(iface)
File "/home/fd/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing-r/init.py", line 22, in classFactory
from .r_plugin import RProviderPlugin
File "/usr/lib/python3/dist-packages/qgis/utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
File "/home/fd/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing-r/r_plugin.py", line 21, in
from r.processing.provider import RAlgorithmProvider
File "/usr/lib/python3/dist-packages/qgis/utils.py", line 672, in _import
mod = _builtin_import(name, globals, locals, fromlist, level)
ModuleNotFoundError: No module named 'r'

Python version: 3.6.7 (default, Oct 22 2018, 11:32:17) [GCC 8.2.0]
QGIS version: 3.4.3-Madeira Madeira, 19f0e02

Python Path:
/usr/share/qgis/python
/home/fd/.local/share/QGIS/QGIS3/profiles/default/python
/home/fd/.local/share/QGIS/QGIS3/profiles/default/python/plugins
/usr/share/qgis/python/plugins
/usr/lib/python36.zip
/usr/lib/python3.6
/usr/lib/python3.6/lib-dynload
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
/home/fd/.local/share/QGIS/QGIS3/profiles/default/python
/media/fd/Dados/FilipeTrabalho/Riverscale/GIS

Unable to run R script on Ubuntu

Hey,
I installed the Processing R Provider plugin and set up my paths. I then try and run the sample script Min_Max and it tries to install a lot of R packages - however it fails saying it cannot configure properly. It appears that the problem package is 'sf'. Has anyone else had a similar issue and if so, how do you fix it?

Thanks

Path to project folder

As part of my script I need to download rasters from the net, and use another file which contains functions, so I would like to set the working directory in order to save the rasters to disk and source the functions file.

I've been trying to identify using R the current directory of the script, and the following code spits out:

Find current directory of script and set as working directory

thisFile <- function() {
cmdArgs <- commandArgs(trailingOnly = FALSE)
needle <- "--file="
match <- grep(needle, cmdArgs)
if (length(match) > 0) {
# Rscript
return(normalizePath(sub(needle, "", cmdArgs[match])))
} else {
# 'source'd via R console
return(normalizePath(sys.frames()[[1]]$ofile))
}
}
print(thisFile())

[1] "C:\Users\Matt Proctor\AppData\Local\Temp\processing_0e8b98b4e2154a4a83c579f6d3791d92\aad1a7bbc681497ca28fc19d0e5804e9\processing_script.r"

But the actual script is edited and saved in my project folder in my Documents, so it obviously creates a temp instance of the script to run from.

I would like to know if there is any way of identifying through R?:
a) the current directory of the QGIS project
b) the directory of the R scripts folder pointed to in the Processing options (at least that won't be a temp folder)

Integer64 fields read as strings

Hi!

I'm working with QGIS 3.8.1 under Windows 10. I've created a "species richness grid" using the 'biological records tool' from FSC tools plugin, so I have a vector containing number of species inside grid squares.
When I used your plugin to call R and create a histogram based on the values from the vector layer, I've noticed that the values were wrong, and I've noticed the message "Integer64 fields read as strings".

Searching a little bit about it, Ive found this closed issue from someone with a similar problem: qgis/QGIS#30493

Is this a bug, something that could be corrected on a future release? Or am I doing something wrong here?
I've managed to work around this problem by converting the vector into a raster. It works, but then you would have to create several rasters if you want work with more then one layer field.

Let me know if you need any more info, ok?
Cheers
Marcos

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.