Giter VIP home page Giter VIP logo

irfu-matlab's Introduction

irfu-matlab ci-build

Acknowledgment

Please use the following to acknowledge use of IRFU-Matlab in your publications:

Data analysis was performed using the IRFU-Matlab analysis package available at https://github.com/irfu/irfu-matlab

Examples

A few examples of irfu-matlab usage can be seen under web page https://sites.google.com/site/irfumatlab/

Installation

Download the code and add to the Matlab path the directory 'irfu-matlab'. Two methods are described below, a plain basic install and a more development oriented install (for contributors).

Basic install

If you intend to use irfu-matlab without pushing code then to simply download the code from the command line run

git clone https://github.com/irfu/irfu-matlab.git

If you want only the latest version and not the full repository run

git clone --depth=1 https://github.com/irfu/irfu-matlab.git

Any time you want to update the code to the latest version, run from the command line

git pull

If you do not use command line there are github programs for Windows and Mac, see github web page.

Development install

This section is mostly for those of you who intend to develop and contribute code yourself (i.e. git push) and not just use 'irfu-matlab'.

It is recommended you first add SSH keys to your github.com account, please see github web pages for details on how to add an SSH key to your account. And then, when SSH keys have been configured, instead of cloning using the basic https:// command above instead from the command line run

git clone ssh://[email protected]/irfu/irfu-matlab.git

Then finally before actually contributing code, please have a look at our contributing guidelines.

Usage

Each time starting new Matlab session execute in Matlab:

irf

To see help execute in Matlab

help irfu-matlab

To test an example execute in Matlab:

Example_1

this should download Cluster data from the CSA archive and plot the figure consisting of 5 panels with data from different instruments.

Issues

If you experience any issues with irfu-matlab please submit an issue via our github page.

When submitting a new issue, please provide information required to replicate the issue as well as information regarding operating system and version of Matlab used.

irfu-matlab's People

Contributors

ahmadlalti avatar ajohlander avatar alessandro-lpp avatar andersie avatar andydimmock avatar cecilianorgren avatar chasapis avatar danbgraham avatar dependabot-preview[bot] avatar dependabot[bot] avatar enya2606 avatar erikpgj avatar henrikwiberg avatar huishanfu avatar ilona-irf avatar jankarlsson avatar jordiboldu avatar konradsteinvall avatar martiniho7 avatar mrmella avatar niked82 avatar paulthulstrup avatar savvasraptis avatar sergiotr avatar sundkvist avatar thomas-nilsson-irfu avatar vaivads avatar wyli1124 avatar yurikhot 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

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

irfu-matlab's Issues

about matlab code for other planteary spacecraft mission

Dear all
This is a great platform for us to study how to deal with scientfic data measured by spacecrafts. however, I am not sure if there is any matlab code for other planteary spacecraft mission, such as maven, Venus express and mars express? I am very grateful to you if you can provide these!

thank you !

Error in ploting PEACE data using c_caa_distribution_function

The function c_caa_distribution function does not appear to handle the distinction between PEACE HEEA and LEEA data correctly. On line 136, the function attempts to open the variable "Data__" whereas the two variables which are available in the PEACE datasets are named "Data_HEEA__" and "Data_LEEA__". This can be circumvented by manually changing the the code of the function in order to select the appropriate dataset but is not supported as an interactive feature.

Love

Probes and Zphase in mms.sc_orient.m

Probes appear to be incorrect in +mms/sc_orient.m.

I did not have time to look into all of this but made some preparatory changes in the MMSdevel branch in commit [3855a74] and [7c73afc].

It should perhaps also be included a minor text string in regards to the phase, to indicate that it is Z-phase (where 0 deg => BCS_X is sunward).

@danbgraham would you mind fixing this?

Components of TSeries should have tensorOrder 0

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): R2018a
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): OSX 10.14.5
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

Expected behavior

A component of a time series object should return a time series object with the variable "tensorOrder" set to 0, i.e. a scalar .

Actual behavior

Components of TSeries objects inherit the tensor order of the original objects. True for both vectors (i.e. E.x) and tensors (i.e. Ti.xx).

This is annoying when trying to add time series together.

Steps to reproduce:

Relevant code:

tint = irf.tint('2017-10-21T21:29:30/2017-10-21T21:31:30');
E = mms.get_data('E_gse_edp_fast_l2',tint,1);
Ex = E.x;
Ex.tensorOrder

ans =

 1

WHAT I TRIED

I tried just forcing tensorOrder to 0 in TSeries.getComponent (lines: 1529 & 1559) but this causes an error:

Error using TSeries (line 247)
Representation already set for all DATA dimensions

I don't know what to do about that.

How to Access of Ancillary, ql, sitl data sets?

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): R2020a__
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Windows10 pro
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

Hello sir,

I am using irfu-matlab package and trying to run mms examples given in the /plots/mms_examples/Example_MMS_probe_align_times/
Here, I am unable to download the data for "mms?ancillary_defatt'',''zphase" from mms-sdc and cdaweb.
Also and few mms_examples, parameters such as 1] E2d_dsl_edp_fast_l2pre;
2]E_ssc_edp
;
3]mms?_dfg_srvy_ql
4]mms?_fpi_fast_sitl
5]mms?_edp_fast_ql_dce2d

SPICE kernel directory

There should be possibility to define SPICE directory variable that is kept across the sessions (similar to CAA credentials). Also, there should some good solution for metakernel files that work independently of computer (local or spis).

About the plot of plasma pitch angle distribution_MMS

Step 1: Latest code?

ic = 1; % Spacecraft number
Tint = irf.tint('2017-06-17T20:20:00.00Z/2017-06-17T20:30:00.00Z');
c_eval('ePDist_brst = mms.get_data(''PDe_fpi_fast_l2'',Tint,?);',ic);
c_eval('Bxyz=mms.db_get_ts(''mms?_fgm_srvy_l2'',''mms?_fgm_b_gsm_srvy_l2'',Tint);',ic);
ePDistpitch = ePDist.e64.pitchangles(Bxyz,24).deflux;

Step 2: Describe your environment

Windows Matlab 2019b

Step 3: Describe the problem

wrong use: TSeries (line 119)
T and DATA must have the same number of records

wrong: PDist/e64 (line 2138)
[pdistr,phir,energyr] =
mms.psd_rebin(obj,TSeries(obj.time,obj.depend{2}),obj.ancillary.energy0,obj.ancillary.energy1,TSeries(obj.time,obj.ancillary.esteptable));

wrong: PDist/subsref (line 99)
[varargout{1:nargout}] = builtin('subsref',obj,idx);

Actual behavior

when i use the electron data in burst mode, the pitch angle distrubution of electron can be well obtained. However, when i use the fast mode data, it would be a error. I tried to find the mistake, I found that the size of ePDist.depend_2 is [1*32] in fast mode, while is [length(time), 32] in burst mode. so could you help me solve this problem? Thanks a lot

cdf reading in local.c_read

local.c_read should have the same reading as dataobj, therefore there should be common reading routines or similar solution that does not require double code.

MMS Energyspectrum

Hi Everyone,
Is there a way to make plots of the ion/electron energyspectrum plots for MMS?
Thanks,
Paul.

irf_get_data fails to load entire data object

Using the latest version, both Master and Devel-MMS, I encounter errors when loading CIS ion data from any dcf-file. If I for example run:

idpf=irf_get_data('Differential_Particle_Flux__C1_CP_CIS-HIA_PAD_HS_MAG_IONS_PF','caa','mat')
It fails to load the data on the width of the energy bins, i.e. the variables idpf.dep_x{2,1}.df.minus and idpf.dep_x{2,1}.df.plus. Instead of loading the full vector it loads a single value from the vector. Likely the first value. The rest of the variables are load correctly. The same problem arise when loading for exemple x3d_ions__C1_CP_CIS_HIA_HS_MAG_IONS_PF.

The issue does not occur when I load the same cdf-file using an older version that I have lying around, v.1.7.1.

Old compiled mex files (Fortran code) fails on Ubuntu 20.04+ & modern MacOS

This issue is added here primarily to serve as a reference point if more people encounter it (and as a reminder to myself).

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): Matlab R2020, Update 1
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Linux Ubuntu 20.04
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

The problem is that the old compiled mex files have been linked to an old libgfortran.so.3 which is no longer present in the Ubuntu's repositories for newer releases. Ubuntu 18.04 was the last one to include libgfortran3, newer releases have only libgfortran5 (which was also available for 18.04). The compiled mex files included in irfu-matlab must be recompiled on a newer system, however doing so will link them to libgfortran5 which is not available on older Ubuntu 16.04 systems thus breaking backwards compatibility.

I would prefer waiting until April 2021, when Ubuntu 16.04 has reached its "end of standard support" and essentially all Ubuntu users should have upgraded to at least 18.04 before updating the files here in irfu-matlab. If anyone disagrees, please add a comment!

Steps to reproduce:

  1. irf;
    => IRBEM .. not OK. Please, contact irfu!
    or
  2. tests_before_release
    =>
Error occurred in test_mms_spinfit/test_c_efw_spinfit_mx_simple and it did not run to completion.
    ---------
    Error ID:
    ---------
    'MATLAB:mex:ErrInvalidMEXFile'
    --------------
    Error Details:
    --------------
    Invalid MEX-file '/home/thoni/MMS/irfu-matlab-master/irfu-matlab/mission/cluster/c_efw_spinfit_mx.mexa64': libgfortran.so.3:
    cannot open shared object file: No such file or directory
    
    Error in test_mms_spinfit/test_c_efw_spinfit_mx_simple (line 42)
            c_efw_spinfit_mx(3,10,3,...

PEACE density from PITCH_SPIN using s/c potential correction

With the last changes, the following code from irfnotes stopped working. I have been trying to see the problem but no success so far. Maybe some changes in c_caa_var_get ?

if 0, % PEACE calculate density nPEACE1..nPEACE4 [cc] from PITCH_SPIN_DPFlux products using s/c potential correction from EFW
for ic=1:4,
c_eval('caa_load C?_CP_PEA_PITCH_SPIN_DPFlux',ic); % to speed up later
varname=irf_ssub('Spacecraft_potential__C?_CP_EFW_L3_P',ic);
scpotmat=c_caa_var_get(varname,'mat');
scpotmat(isnan(scpotmat(:,2)),:)=[]; % remove NaN densities
varname=irf_ssub('Data__C?CP_PEA_PITCH_SPIN_DPFlux',ic);
[var,~,varmat]=c_caa_var_get(varname);
scpot=irf_resamp(scpotmat,varmat); % interpolate sc potential to PEACE data points
phi=c_caa_var_get(var.DEPEND_1);
x=getfield(c_caa_var_get(phi.DELTA_PLUS),'data');phi_dplus=x(1,:);
x=getfield(c_caa_var_get(phi.DELTA_MINUS),'data');phi_dminus=x(1,:);
en=c_caa_var_get(var.DEPEND_2);
x=getfield(c_caa_var_get(en.DELTA_PLUS),'data');en_dplus=x(1,:);
x=getfield(c_caa_var_get(en.DELTA_MINUS),'data');en_dminus=x(1,:);
PEACE_energy_channels=en.data(1,:)+0.5
(en_dplus-en_dminus);
PEACE_phi_min=phi.data(1,:)-phi_dminus;
PEACE_phi_max=phi.data(1,:)+phi_dplus;
phi_factor=repmat((cos(PEACE_phi_min_pi/180)-cos(PEACE_phi_max*pi/180))',1,length(PEACE_energy_channels));

nPEACE=[varmat.t(:) varmat.t(:)*0];
varmat.data(isnan(varmat.data))=0;
for jj=1:size(nPEACE,1),
  satpot=-scpot(jj,2)*1.3; % assumes that probe t spacecraft potential is ~75% of spacecraft potential
  ii_energy=find(PEACE_energy_channels>satpot); % use only these energy chanels
  [en_min,ii_energy_min]=min(PEACE_energy_channels(ii_energy));
  ii_energy(ii_energy==ii_energy_min)=[]; % remove first channel after satellite potential
  [en_min,ii_energy_min]=min(PEACE_energy_channels(ii_energy));
  ii_energy(ii_energy==ii_energy_min)=[]; % remove second channel after satellite potential
  en_factor=repmat(1e-3*(en_dplus(ii_energy)+en_dminus(ii_energy)).*sqrt(1e-3*(PEACE_energy_channels(ii_energy)-satpot))./(1e-3*PEACE_energy_channels(ii_energy)),length(phi_dplus),1);
  ncoef=ones(length(phi_dplus),length(ii_energy));
  ncoef=ncoef*0.2284e-7*sqrt(1/1836)*2*pi.*phi_factor(:,ii_energy).*en_factor;
  nPEACE(jj,2)=sum(sum(shiftdim(varmat.data(jj,:,ii_energy)).*ncoef));
end
c_eval('nPEACE?=nPEACE;',ic);

end
end

Library does not load MacOS

Step 1: Latest code?

  • [ x] This issue is present in the most recent code v 1.15.1 (downloaded as zip)

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): master 1.15.1
  • Matlab version used (i.e. "Matlab R2017a"): R2020b
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): MacOS 11.1
  • [x ] A 64-bit installation of Matlab was used.

Step 3: Describe the problem

Expected behavior

irf run complete

Actual behavior

Relevant code:

irf
Added to path: /Users/gedalin/irfu-matlab-master/
Added to path: /Users/gedalin/irfu-matlab-master/contrib/isdat
Added to path: /Users/gedalin/irfu-matlab-master/contrib/libirbem
Added to path: /Users/gedalin/irfu-matlab-master/contrib/libcef
Added to path: /Users/gedalin/irfu-matlab-master/contrib/matlab_central
Added to path: /Users/gedalin/irfu-matlab-master/contrib/matlab_central/cm_and_cb_utilities
Added to path: /Users/gedalin/irfu-matlab-master/contrib/mice
Added to path: /Users/gedalin/irfu-matlab-master/contrib/nasa_cdf_patch
Added to path: /Users/gedalin/irfu-matlab-master/irf
Added to path: /Users/gedalin/irfu-matlab-master/plots
Added to path: /Users/gedalin/irfu-matlab-master/plots/mms
Added to path: /Users/gedalin/irfu-matlab-master/mission/cluster
Added to path: /Users/gedalin/irfu-matlab-master/mission/cluster/caa
Added to path: /Users/gedalin/irfu-matlab-master/mission/solar_orbiter
Added to path: /Users/gedalin/irfu-matlab-master/mission/solar_orbiter/bicas/src
Added to path: /Users/gedalin/irfu-matlab-master/mission/themis
Added to path: /Users/gedalin/irfu-matlab-master/mission/thor
Added to path: /Users/gedalin/irfu-matlab-master/mission/mms
Added to path: /Users/gedalin/irfu-matlab-master/mission/mms/mms_testFunctions
irfu-matlab version: v1.15.1
Checking if you have latest irfu-matlab... YES:)
Error using loadlibrary
There was an error loading the library
"/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib"
dlopen(/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib, 6): no suitable image
found. Did find:
/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib: code signature in
(/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib) not valid for use
in process using Library Validation: library load disallowed by system policy

Error in cef_init (line 6)
loadlibrary (['libcef_' lower(computer)], @libcef_mfile,'alias','libcef')

Error in irf (line 234)
cef_init();

Error in irf (line 42)
irf('ceflib');

Caused by:
Error using loaddefinedlibrary
dlopen(/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib, 6): no suitable
image found. Did find:
/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib: code signature in
(/Users/gedalin/irfu-matlab-master/contrib/libcef/libcef_maci64.dylib) not valid for use
in process using Library Validation: library load disallowed by system policy

Issues with implementation of irf.log in irf_resamp

When running irf_resamp I get the following issue:

irf_resamp(R,ilat);
[critical: log(101)] Error! Unrecognized input, see help.
Error using irf.log (line 102)
Unrecognized input.

Error in irf_resamp (line 184)
if (~median_flag && ~max_flag), irf.log('fcal','cannot find mex file, defaulting to Matlab code.')

For the time being the issue can be circumvented by commenting out irf.log at line in question of irf_resamp. The issue does not exist in version v1.5.5, I suspect that it was introduced along with the changes from using irf_log to using irf.log.

mms.get_data error when loading spacecraft position for larger time intervals

When I try loading a bigger time interval of the spacecraft position I get an error.

Example run (devel branch):
Tint = irf.tint('2015-07-31T00:00:00Z/2015-11-28T02:00:00Z'); % define event time interval
R = mms.get_data('R_gse',Tint);

Error:
[warning: mms_db.get_variable/append_sci_var/comp_cell(159)] can only compare chars
Attempt to reference field of non-structure array.

Error in mms.get_data (line 122)
dTmp.data = double(dTmp.data);

Smaller time intervals like for example:
Tint = irf.tint('2015-11-30T00:00:00Z/2015-11-30T02:30:00Z');
works

About the PDist format data

Dear all.,
I found that using the PDist type data to plot the velocity distribution more conviently. but I want to know whether it is also valid for other mission data? e.g., Cluster and MAVEN. How to make the PDist data if I have the theta, phi and energy data? thank you!

Chi Zhang;
Best wishes;

epoch16 bug

Time interval:

tStart = irf_time([2002 02 03 05 19 12]); %start time
tint = [tStart, tStart+12]; %time interval

local.c_read('E_Vec_xyz_ISR2__C3_CP_EFW_L2_E3D_INERT',tint) does not read

data is stored locally

mms.db_get_ts fails to load dis-dist data when needs to read from 3 data files

Hi,
I am trying to load dis-dist data for a large interval (6 hours). dis-dist cdf files (fpi_fast_l2_dis-dist) cover 2 hours each. If my interval tint becomes larger than 4 hours, the script gives an error. Please note that dis-dist data is a 4-D matrix (time, energy, phi, theta).

to reproduce the error try to load 6 hours (21600 s) of data, interval 08:00 - 14:00 UT
tint = irf.tint('2015-09-21T08:00:00Z',21600);
disti=mms.db_get_ts('mms1_fpi_fast_l2_dis-dist','mms1_dis_dist_fast',tint);%this does not work (6 hours)

However, loading separately the intervals 08:00 - 12:00 UT or 10:00 - 14:00 UT does work, meaning the cdf files are not corrupted. E.g.:
tint = irf.tint('2015-09-21T08:00:00Z',14400);
disti1=mms.db_get_ts('mms1_fpi_fast_l2_dis-dist','mms1_dis_dist_fast',tint); %this works (4 hours)

tint = irf.tint('2015-09-21T10:00:00Z',14400);
disti2=mms.db_get_ts('mms1_fpi_fast_l2_dis-dist','mms1_dis_dist_fast',tint); %this works (4 hours)

I have been looking at +mms/mms_db.m but I cannot see the problem. Any clue?

Thanks
Sergio

onera

onera requires knowledge of compilator, see example below. This needs to be fixed so that there is no compilator needed (static libraries instead of dynamic?).

Output of running Mac

t=irf_time(now,'datenum2epoch')+[1:10]; t=t(:);
frGSE = [t rand(numel(t),1)-0.5 rand(numel(t),1)-0.5 rand(numel(t),1)-0.5];
timeDatenum=irf_time(frGSE(:,1),'epoch2datenum');
frGEO = onera_desp_lib_coord_trans(frGSE(:,2:4),'gse2geo',timeDatenum);
??? Error using ==> loadlibrary at 441
Failed to preprocess the input file.
Output from preprocessor is:/bin/bash: gcc-4.2: command not found

Error in ==> onera_desp_lib_load at 39
loadlibrary(libfile,headerfile,'alias','onera_desp_lib');

Error in ==> onera_desp_lib_coord_trans at 38
onera_desp_lib_load;

Error using irf_get_data with specified time interval

I've recenstly gone back to some plottin routines I haven't used since late last year. When I try to load data from any dataset using irf_get_data('tint','DATASET','caa','mat') it returns an empty structure. With the following message:

[warning: caa_load(119)] loading C1_CP_PEA_PITCH_SPIN_DPFlux from location:CAA/C1_CP_PEA_PITCH_SPIN_DPFlux*.cdf
[critical: caa_load(130)] Did not succeed! Error loading: C1_CP_PEA_PITCH_SPIN_DPFlux
[warning: caa_load(136)] CAA_LOAD : nothing to load
[warning: c_caa_var_get(172)] C1_CP_PEA_PITCH_SPIN_DPFlux could not be loaded!
[warning: c_caa_var_get(225)] Nothing is loaded

It doesn't matter which dataset I choose and re-downloading them does nothing. The function still returns an empty data structure. Without a specified time interval the data loads as expected.

Are there any know problems in recent updates that matches this problem?

Love

returns data as single type

E = irf_get_data('E_Vec_xyz_ISR2__C3_CP_EFW_L2_E3D_INERT','caa','caa');

E.data is single which makes problems for later plotting. E.data should be of type double.

Latest commits to irf_powerfft return incorrect "Specrec"

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): Matlab R2020a
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Linux Ubuntu 20.04
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

Expected behavior

3d data (in form of TSeries) should properly have its power spectra computed per component in irf_powerfft.m,
now it is not.

Actual behavior

Returned output is single matrix.

Steps to reproduce:

  1. load some 3d data into a TSeries
  2. process it with latest devel version of irf_powerfft().
  3. returned output now has a single cell entry in the "Specrec.p".

Relevant code:

irf;
MMS_CONST = mms_constants; % Some mission constants
dceObj = dataobj('/data/mms/mms1/edp/fast/ql/dce2d/2020/05/mms1_edp_fast_ql_dce2d_20200520000000_v1.9.3.cdf'); % load example file (on brain or spis)
dceTs = get_ts(dceObj, 'mms1_edp_dce_xyz_dsl'); % get a TSeries object of this 3d data
dslFastSpect = irf_powerfft(dceTs, 512, MMS_CONST.Samplerate.fast)

dslFastSpect = 

  struct with fields:

    f: [256×1 double]
    p: {[5340×256 double]}
    t: [5340×1 double]
% But it should have 3 cells in "p"...

I am assigning this to @ErikPGJ, since he was the one who changed in irf_powerfft last.

Mac OS X, Matlab R2017a and Mice.

OS: Mac OS X (10.12.3)
Matlab version: R2017a.

This combination of OS and Matlab appears to have an issue with the provided Mice package (N0065), originally reported by Per-Arne.

Example of output errors:

Invalid MEX-file
'... /irfu-matlab/contrib/mice/mice.mexmaci64':
Missing symbol '__DefaultRuneLocale' required by
'... /irfu-matlab/contrib/mice/mice.mexmaci64'
and so on for about 26500 rows.

The contributed package in question, mice, is scheduled for a new release (N0066) very soon. Hopefully this new release will be compiled in a fashion making it work out of the box for Mac OS X (10.12+) and the latest Matlab R2017a.

In the meantime one possible workaround for anyone experiencing this problem and who does not need the mice package for orbit computations is to comment out the call to
irf('mice');
on line 43 of irf.m, making it read:
%irf('mice');

If the mice package is required for orbit computation another possible workaround would perhaps be to recompile the mice package.

This issue is added here mostly as a public notice, for anyone experiencing a similar issue.

WHAMP inputs

This is a suggestion of improvement related to WHAMP.

The whamp.plot_f takes the input temperature in keV while whamp.run takes the temperature in eV.
The two functions takes the same structure format for each species.

I suggest to change the unit temperature input of whamp.plot_f to eV so that the same structure can be used for whamp.run and whamp.plot_f.

This implies the following changes in plot_f.m file (I think this is an exhaustive list):
line13:
% t - temperature [keV] => % t - temperature [eV]
line 183:
vt(j)=sqrt(2e * 1000t(j)/mm(j)); % [m/s] (t in keV therefore 1000) => vt(j)=sqrt(2e *(j)/mm(j));
line 267:
title(h,['1st comp: T=' num2str(t(1),3) 'keV'... => title(h,['1st comp: T=' num2str(t(1),3) 'eV'...

I think that's it.

Best,
Alexandre

irf_plot for 'Data__C1_CP_PEA_PITCH_SPIN_DPFlux'

Hej irfu-matlab,

The code

irf_plot('Data__C1_CP_PEA_PITCH_SPIN_DPFlux','comp_dim1','comp',1);

can give a correct figure for PEACE data in 7.5 degrees.
BUT, if change 'comp',1 to 'comp',2 ,it has some problem...like following, did I use a wrong arguments?

irf_plot('Data__C1_CP_PEA_PITCH_SPIN_DPFlux','comp_dim1','comp',2);
[warning: caa_load(127)] loading C1_CP_PEA_PITCH_SPIN_DPFlux from location:CAA/C1_CP_PEA_PITCH_SPIN_DPFlux*.cdf
Index exceeds matrix dimensions.

Error in dataobj/plot (line 453)
lab_2 = num2str(dep_x{comp_dim}.data(1,comp)',['%.2f ' dep_x{comp_dim}.units '\n']);

Error in irf_plot (line 192)
ax = plot(caa_dataobject{1},caa_varname{1},original_args{:});

Tack !
Bin

BUG report: irf_plot fails with certain inputs

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): master
  • Matlab version used (i.e. "Matlab R2017a"): MATLAB R2018a
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Windows 10
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

With certain input, irf_plot fails to plot a figure and cast an error like this: (with original output translated to English)

错误使用 matlab.graphics.axis.Axes/set
// Error using matlab.graphics.axis.Axes/set
值必须是数值类型的 1x2 向量,其中第二个元素大于第一个元素,并且可能为 Inf
// Value should be numeric 1x2 vectors, with second element larger than the first element, maybe Inf
出错 irf_zoom>zoom_y_auto (line 278)
// Error irf_zoom>zoom_y_auto (line 278)
        set(h,'ylim',[ymin ymax]);

出错 irf_zoom (line 177)
// Error irf_zoom (line 177)
                    zoom_y_auto(h)

出错 irf_plot (line 231)
// Error irf_plot (line 231)
    if ~ishold(hca), irf_zoom(hca,'y'); end % automatic zoom only if hold is not on

Relevant code:

The code reproducing this error can be very simple. Any of the following lines could reproduce this problem.

irf_plot([1:5;(0.78:0.1:1.18)]')
irf_plot([1:5 ; 0.43:0.01:0.47]')
irf_plot([1:5 ; 0.05:0.01:0.09]')

After debugging, I guess this may be related to some floating-point arithmetic error stuff. irf_plot seems to automatically call irf_zoom to adjust the y-axis. During this process, when it reaches the following parts of irf_zoom.m:

262  dy=double(diffy)/4; % 1st approx
263  dy10power=10^(floor(log10(dy)));
264  dy1stcipher=floor(dy/dy10power);

dy1stcipher becomes zero, which is unexpected because dy and dy10power are equal in those 3 cases and this should return 1.

cdfepoch16 differently coded in files

Problem

cdf files generated by CAA can have epoch16 encoded in different ways, sometimes as having dimension 0 and sometimes 1 (when using cdfbrowse from command line). This leads to different size of epoch matrices when using cdfread in matlab. One has to identify where is the problem and if needed notify CAA team.

Example 1

[data,info] = cdfread('C2_CP_EFW_L3_E__20101013_115930_20101013_150030_V120420.cdf','CombineRecords',true,'KeepEpochAsIs',true);

data(1)

ans = 

[61724x2 double]

Example 2

 [data,info]=cdfread('C1_CP_EFW_L2_V3D_INERT__20041015_130000_20041015_135000_V121129.cdf','CombineRecords',true,'KeepEpochAsIs',true);
data(1)

ans = 

[1350030x1x2 double]

4D data from cdf in dataobj() should match its specified dimensions

// NOTE: This issue is added here mainly as a placeholder until the issue is fully solved, as fixing it in 9440568 generated A LOT more dependent problems.

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): R2017b
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): All of the above
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

Expected behavior

Objects and variables created using dataobj() SHALL match the dimensions of the variables inside the CDF files from which it was created. (Which in turn of course should match the appropriate instrument papers, data products guide, release notes or other documentation). That is the Depend_0 (being Epoch in most cases), and subsequent Depend_i for i=1:3. (I.e. 4D data variables) should be in the correct positions and data should be the appropriate sizes in each dimension.

Actual behavior

Presently dataobj()'s permute function change the data according to files created using the old Cluster method. But files created according to the most recent instructions from NASA SPDF should not have permute running in the same way.
These should only have the main time dependency put in the first column and not shifting the second to last column. A detailed overview can be viewed here: https://docs.google.com/spreadsheets/d/1L58nLwy1Mwl9y4OATjkgjb58p6dCiNFerEx2cVbsB0M/edit#gid=0
For MMS this impacts FPI data, and for future missions (SolarOrbiter?) it could impact any other files created according to the correct instructions (see "Test with SPDFCDFWRITE" in the spreadsheet).

Relevant code:

When all the dependent files are ready, then the following can be put into place again:

function fix_order_of_array_dimensions
for iDimension=3:4
% Check if dimensions match expected (ignoring Depend_0) and that
% it is not a single vector (which could be "Nx1").
indDatasets = find(cellfun(@(x) all(x(:) > 1) && numel(x)==iDimension-1, info.Variables(:,2)));
for iDataset=1:numel(indDatasets)
if iDimension==3
% permutate it to N x m x n, where N corrsponds to record (ie Depend_0).
data{indDatasets(iDataset)} = permute(data{indDatasets(iDataset)}, [3 1 2]);
elseif iDimension==4
% Check if it should be simple cyclic permutation (MMS), data
% was read into "recSize x nRec". Also possibly a matrix of
% size "recSize" if it only contained one single record.
% Or if the data should be more complexly permuted (Cluster),
% ie where the recSize does not match the data.
recSize = info.Variables{indDatasets(iDataset), 2}; % Expected record size, (m x n x p)
nRec = info.Variables{indDatasets(iDataset), 3}; % Numer of records, (N)
dataSize = size(data{indDatasets(iDataset)}); % Size of data, as it was read
if isequal([recSize, nRec], dataSize) || (nRec==1 && isequal(recSize, dataSize) )
% Simple cyclic permutation to get N x m x n x p
data{indDatasets(iDataset)} = permute(data{indDatasets(iDataset)}, [4 1 2 3]);
else
% Re-order Cluster data, from (n x p x m x N) to (N x m x n x p).
data{indDatasets(iDataset)} = permute(data{indDatasets(iDataset)}, [4 3 1 2]);
end
end
end
end
end

dataobj zVar dimensions different for zVars with one or many CDF records

Step 1: Latest code?

This issue is present in SOdevel 1ea1d71 thomas-nilsson-irfu (2019-09-06 13:15:26 +0200) Merge remote-tracking branch 'origin/devel' into SOdevel

Step 2: Describe your environment

MATLAB R2016a
Ubuntu 18.04.3 LTS

Step 3: Describe the problem

Using irfu-matlab's dataobj to read CDF file. The meaning of zVar indices in dataobj variables, *.data..data, change depending on whether the zVar has 1 or many CDF records.

Expected behavior

Consistent meaning of array indices regardless of the number of CDF records. No special case for 1 CDF record.

Actual behavior

1 CDF records: All variable indices represent the non-record dimensions.
>=2 CDF records: The first index represents the CDF record.

Examples

1 CDF record:
size(Do.data.BIAS_CURRENT_OFFSET.data) == [3 1]
size(Do.data.TRANSFER_FUNCTION_COEFFS.data) == [ 4 2 8]
2 CDF records:
size(Do.data.BIAS_CURRENT_OFFSET.data) == [2 3]
size(Do.data.TRANSFER_FUNCTION_COEFFS.data) == [2 4 2 8]

NOTE: Related to issue #41?

How to plot the electron velocity distribution?

Dear all:
I am very sorry to bother you, I am a student, and don't know how to plot the electron velocity distribution, my code is :

tint=irf.tint('2017-07-11T22:34:02Z/2017-07-11T22:34:04Z');
ic=1;
c_eval('B=mms.get_data(''B_dmpa_fgm_srvy_l2'',tint,?);',ic); %magnetic field

%electric field and electron data
c_eval('E=mms.get_data(''E_dsl_edp_brst_l2'',tint,?);ne=mms.get_data(''Ne_fpi_brst_l2'',tint,?);',ic);
c_eval('ePDist=mms.get_data(''PDe_fpi_brst_l2'',tint,?);',ic);

%spacecraft Pot
c_eval('SCpot=mms.db_get_ts(''mms?_edp_brst_l2_scpot'',''mms?_edp_scpot_brst_l2'',tint);',ic);

tint=irf.tint('2017-07-11T22:34:02.367Z/2017-07-11T22:34:02.397Z'); dist=ePDist.tlim(tint); time=irf_time(mean(irf_time(tint,'epochtt>datenum')),'datenum>epochTT'); %the mean time
n0=ne.resample(time).data; E0=E.resample(time).data; B0=B.resample(time).data; sc=SCpot.resample(time).data;
hatB0 = double(irf_norm(B0)); hatE0 = double(irf_norm(E0)); hatExB0 = cross(hatE0,hatB0);
hatE0 = -cross(hatExB0, hatB0);
xyz =[hatB0; hatExB0; hatE0; ];
mms.plot_projection(h1,ePDist,'tint',tint,'xyz',xyz, 'scpot',scpot,'vlabel',vlabels);
colormap(h1,'jet');

but the result as shown in this figure is different to Figure 2K in Torbert et al., 2018, science. doi: 10.1126/science.aat2998
I don't know why, so could you help me? thank you

c_4_v_xcorr.m seems not to work

As far as i can tell the following replacement fixes it

Line 36: c_eval('data1=b?(:,2:4); data2=b!(:,2:4); dt=b?(1,1)-b!(1,1);',cli1,cli2); Replaced by: eval(irf_ssub('data1=b?(:,2:4); data2=b!(:,2:4); dt=b?(1,1)-b!(1,1);',cli1,cli2));

'spdfcomputett2000c' undefined

I am using irfu-matlab version: v1.8.0
The issue is as following:

irf
irfu-matlab version: v1.8.0
Checking if you have latest irfu-matlab... YES:)
loading datastore...
IRBEM is OK
CDF_LEAPSECONDSTABLE was not set in user environment.
Automatically setting it to: C:\Users\lenovo\Documents\MATLAB\irfu-matlab-master\contrib\nasa_cdf_patch\CDFLeapSeconds.txt
Example_1
Moving to temporary directory: C:\Users\lenovo\AppData\Local\Temp\tp53ddfefa_0535_44b7_974f_32171da6011b
Undefined function 'spdfcomputett2000c' for input arguments of type 'double'.

Error in spdfcomputett2000 (line 57)
out = spdfcomputett2000c (datetime);

Error in irf_time (line 115)
t_out = spdfcomputett2000(t_in);

Error in irf_time (line 82)
t_temp=irf_time(t_in,[format_in '>ttns']);

Error in Example_1 (line 12)
tint=[irf_time([2006 9 27 17 17 0]) irf_time([2006 9 27 17 24 0])]; % time interval

FPI v3.1.0 changes, mms.make_pdist quickfix

FPI v3.1.0 data breaks a few things in mms..make_pdist since energy0, energy1 and stepTable are no longer used.

Here is a suggested fix of mms..make_pdist.m
make_pdist_fpi_v3_quickfix.zip

It loads the new variable names for v3.1.0 and works as before for previous versions.
However, for v3.1.0 data the PDist methods that call the obsolete fields (energy0, energy1 and stepTable) will still have issues.

irf_get_data_omni problem with connection

I've been trying to download data from the omni database, but continuously get the error that the data cannot load from the internet. I've checked my internet connection (it's working) and also tried downloading using the wifi but it still shows the same error.

Turns out the problem is in the end time of tint. There's no data available. Using the first of Nov instead worked. Might need to update the errors in the function so that it reads "Try an earlier time limit" instead of just Can not get OMNI data from internet.

Example run (matlab 2014b and devel branch)
int=[irf_time([2015 07 31 00 00 00]) irf_time([2015 12 01 02 00 00])];
IMF_Bz_nT=irf_get_data_omni(tint,'BzGSM', 'omni_min') %The same result with or without 'omni_min'
swp_nPa=irf_get_data_omni(tint,'P', 'omni_min')

Error received:

url:http://omniweb.gsfc.nasa.gov/cgi/nx1.cgi?activity=retrieve&spacecraft=omni_min&start_date=2015073100&end_date=2015120103&vars=18
[warning: irf_get_data_omni(208)] Can not get OMNI data from internet!

IMF_Bz_nT =

 []

url:http://omniweb.gsfc.nasa.gov/cgi/nx1.cgi?activity=retrieve&spacecraft=omni_min&start_date=2015073100&end_date=2015120103&vars=27
[warning: irf_get_data_omni(208)] Can not get OMNI data from internet!

swp_nPa =

 []

It said that the IRBEM is not OK

irfu-matlab version: v1.13.2
Checking if you have latest irfu-matlab... YES:)
IRBEM .. not OK. Please, contact irfu!
Operating system is OK
Matlab version is OK
CDF_LEAPSECONDSTABLE is OK

matlab version= '9.2.0.538062 (R2017a)'
System version is Microsoft Windows Version 10.0.15063

About mms data reading

// TODO (you): please remove comments like this line and fill in this form as best you can, checking relevant boxes, etc.

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).
    Yes.

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): v1.14.2
  • Matlab version used (i.e. "Matlab R2017a"): matlab R2018a
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Windows 10
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

When I use "get_data" subroutine for the mms mission.

Tint = irf.tint('2015-09-21T00:00:00Z/2015-09-21T17:00:00Z');
V1 = mms.get_data('V_gse',Tint,1);
It reports:
[warning: mms_db.list_files(35)] No databases initialized
[warning: mms_db.list_files(35)] No databases initialized
[warning: mms_db.list_files(35)] No databases initialized
[warning: mms_db.list_files(35)] No databases initialized
[warning: mms_db.list_files(35)] No databases initialized

Expected behavior

Download the data automatically and get the V_gse data from a defined time range.

Actual behavior

Report "No databases initialized"

Steps to reproduce:

// TODO (you): describe how to reproduce the problem. (Or if you prefer: you can fill in the "Relevant code" section below).

  1. Tint = irf.tint('2015-09-21T00:00:00Z/2015-09-21T17:00:00Z');
  2. V1 = mms.get_data('V_gse',Tint,1);

Relevant code:

  // TODO (you): insert code here to reproduce the problem.
  // (Or if you prefer: you can descbibe it in the "Steps to reproduce" section above).

Use the new stable nasa_cdf_patch, prefix 'SPDF', in all cdf functions.

Hi,
NASA have just (minutes ago, after hopefully my last bug report) released the new stable cdf patch for Matlab. (v.3.6). This is now able to handle the upcoming leap second of 2015/07/30 while ensuring backwards/forwards compatibility with any future leap seconds by adding a field in each cdf file with information about the last leap second used when writing the file.

One major change from previous version is that: "All SPDF-distributed modules are now renamed with a prefix of 'SPDF', e.g., SPDFCDFREAD replaces CDFREAD, SPDFCDFWRITE replaces CDFWRITE, etc. Each module still keeps its original functionality and may have a few new enhancements/features."

All MMS specific code has already been modified to reflect this behavior but as there are still a lot of places in irfu-matlab where the old functions are used I am creating this issue. When all instances of cdfread, cdfwrite, cdfinfo etc. are replaced this issue can be closed and the new stable cdf-patch can fully replace the nasa_cdf_patch.

Please feel free to help locate and replace the obsolete function calls.

// Thomas

Method Tseries.cross and automatically resampling

The last line of code worked in v1.9.4 and stopped working in v1.9.5
tint = irf.tint('2015-08-15T12:00:05Z/2015-08-15T15:00:00Z');
B3=mms.db_get_ts('mms3_dfg_srvy_ql','mms3_dfg_srvy_dmpa',tint);
E3=mms.db_get_ts('mms3_edp_fast_ql_dce2d','mms3_edp_dce_xyz_dsl',tint);
ExB= B3.cross(E3).data

In version v1.9.4 it gave a warning:
[warning: TSeries.cross(420)] cross(T1,T2): resampling T2 TSeries

In v1.9.5 gives error:
Error using TSeries/cross (line 438)
Input TS objects have different timelines, use resample()

Error in TSeries/subsref (line 290)
[varargout{1:nargout}] = builtin('subsref',obj,idx);

Tseries dot product units

Tseries with empty unit should be assumed as unitless. Thus products or divisions of two time series with empty units should result in TSeries with empty units. Now 'unknown' is appearing in the text of the unit.

How to access mms data base using functions given in irf-matlab devel.

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • MATLAB version used (i.e. "MATLAB R2017a"): R2020a
  • Operating system (i.e. "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): Windows 10 pro__
  • A 64-bit installation of MATLAB was used.

Step 3: Describe the problem

Hello sir/mam,
I am new to the field of space data analysis. I am using irfu-matlab devel package of GitHub for data analysis of MMS spacecraft.
Initially I started with few examples (\plots\examples) which access data from CAA.
Later I started with MMS examples (\plots\mms) given in the irfu-matlab devel.
There I am stuck with the function cval.m
I downloaded the data form cdaweb for 2016-11-28 from MMS spacecraft and stored that data into the current folder irf-devel (irfu-devel\data).
After evaluating mms.init(), I started using examples where cval.m is showing no data base present.
Sometimes it gives the result matrix say B=[], but with 0X0 matrix i.e. data has not been read by it.

Will you Please try to guide me with this issue?

Expected behavior
The function ,"c_eval('Bxyz1=mms.db_get_ts(''mms1_fgms_brst_l2_20161128072930_20161128073119'',''mms1_fgm_b_gse_brst_l2'',Tint);');"
should show the values of B1 which are magnetic field data taken from cdaweb website.
The first entry inside the () is file name, the second entry is variable name of the file while the third entry if Time, which is
Tint = irf.tint
mms1_fgms_brst_l2_20161128072930_20161128073119.zip

('2016-11-28T07:29:00.00Z/2016-11-28T07:31:30.00Z');

Actual behavior
The function when used shows B1 with 0X0 matrix i.e. no data find.
The data file which I am using is attached below. Please do refer it.

mms1_fgms_brst_l2_20161128072930_20161128073119.zip

How to use whamp codes for plotting dispersion relations?

Step 1: Latest code?

  • This issue is present in the most recent code (i.e. after running git pull this is still a problem).

Step 2: Describe your environment

  • irfu-matlab branch (i.e. "master", "devel"): devel
  • Matlab version used (i.e. "Matlab R2017a"): Matlab R2020a
  • Operating system (ie "Windows 7", "Mac OS X 10.12.3", "Linux Ubuntu 16.04"): _Microsoft Windows 10 Pro
  • A 64-bit installation of Matlab was used.

Step 3: Describe the problem

I want to use Whamp codes to plot wave dispersion. The irf-matlab devel package contains /irf-matlab/+whamp/, whamp codes. I want to plot dispersion relation for Lower hybrid waves. Will you please guide me how to plot this using whamp code? How to initiate it?

irf_resamp issues with MMS dfg data

Using matlab2014b (with devel branch) I keep getting an error with the resamp function when trying to use dfg data.

Example run:

tint = irf.tint('2015-11-28T00:00:00Z/2015-11-28T02:30:00Z');
c_eval('B?=mms.db_get_ts(''mms?_dfg_srvy_ql'',''mms?_dfg_srvy_dmpa'',tint);',[1:4]);
c_eval('B? = B?.resample(B1);',[2:4]);

Error I get:

Error using griddedInterpolant
The grid vectors are not strictly monotonic increasing.

Error in interp1 (line 183)
F = griddedInterpolant(Xext,V,method);

Error in irf_resamp (line 234)
out = [t interp1(x(:,1),x(:,2:end),t,method,'extrap')];

Error in TSeries/resample/resample_ (line 888)
newData = irf_resamp([tData
dataTmp],NewTime-TsTmp.time(1),varargin{:});

Error in TSeries/resample (line 875)
case {'xy','xyz'}, resample_(obj); return

Error in TSeries/subsref (line 291)
[varargout{1:nargout}] = builtin('subsref',obj,idx);

Error in c_eval (line 40)
if strfind(ev_str,'?'),

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.