슬롯 커뮤니티

슬롯 커뮤니티은 슬롯 커뮤니티 파일을 읽고 GDX 파일에 쓰는 도구입니다. [슬롯 커뮤니티]를 읽는 방법에는 여러 가지가 있습니다(https://en.wikipedia.org/wiki/Comma-separated_values23074_23126텍스트 파일과의 데이터 교환예를 들어), 그러나 CSV2GDX에서 사용할 수 있는 여러 기능을 사용하면 GAMS 자체를 사용할 수 없는 슬롯 커뮤니티 파일을 읽을 수 있습니다. 구문 설명과 일부 예제에서 보여 주는 기본 기능 외에도 이 튜토리얼에서는 다음의 몇 가지 장점과 단점에 대해서도 설명합니다.슬롯 커뮤니티GAMS 내부 테이블 문과 비교.

주의
슬롯 커뮤니티더 이상 사용되지 않습니다(참조GAMS 48 슬롯 커뮤니티 출시 노트). 이용해주세요GAMS 도구 슬롯 커뮤니티읽기대신.


사용법

슬롯 커뮤니티슬롯 커뮤니티 파일과 데이터를 읽는 방법을 정의하는 여러 옵션을 지정하여 호출됩니다.

슬롯 커뮤니티 파일 이름 옵션

파일 이름

입력 파일;.슬롯 커뮤니티확장자가 지정되지 않은 경우 파일 확장자로 간주됩니다.

매개변수는 텍스트 파일에서도 읽을 수 있습니다. 매개변수에 대한 외부 파일의 사용은 파일 이름 앞에 @(at 기호)가 붙어 있음을 나타냅니다. 텍스트 파일에서 매개변수를 읽을 때 별표(*)로 시작하는 줄은 무시됩니다. 또한 참조하세요예 8.


옵션

호출 시 다음 옵션을 사용할 수 있습니다.슬롯 커뮤니티:

옵션기본값설명
acceptBadUels N 잘못된 UEL이 허용되는지 또는 오류 반환 코드가 발생하는지 표시합니다.
autoCol 없음각 열에 대한 자동 UEL을 생성합니다.
autoRow 없음각 행에 대해 자동 UEL을 생성합니다.
checkDate N 슬롯 커뮤니티 파일이 GDX 파일보다 최신인 경우에만 GDX 파일을 작성하십시오.
colCount 없음입력 파일의 열 수.
decimalSep 기간소수 구분 기호를 지정하세요.
fieldSep 쉼표필드 구분자를 지정하세요.
id 없음슬롯 커뮤니티 파일의 기호 식별자.
색인 없음UEL을 가져올 열을 식별하십시오.
출력 <슬롯 커뮤니티파일 이름>.gdx선택적 출력 파일 이름.
비밀번호 없음암호화된 입력 파일의 비밀번호.
스토어제로 N 0 값이 처리되는 방법을 표시합니다.
텍스트 없음설명 텍스트를 얻을 열을 지정하십시오.
추적 1 로그에 기록되는 정보의 양을 제어합니다.
useHeader N 첫 번째 행이 헤더 행인지 표시합니다.
없음값을 가져올 열을 지정하십시오.
valueDim N 값에 대한 추가 차원을 추가합니다.
없음값을 가져올 열을 지정하십시오.


참고
  • 사용자는 매개변수 내의 슬롯 커뮤니티 파일에 있는 기호에 대한 식별자를 지정해야 합니다.id, 슬롯 커뮤니티 파일의 데이터 구조와 관계없음.
  • 슬롯 커뮤니티헤더 행 또는 매개변수에 지정된 사용자 정의 입력에서 슬롯 커뮤니티 파일의 열 수를 결정합니다.colCount. 따라서 사용자는 해당 옵션을 활성화해야 합니다.useHeader또는 그 안에 열 수를 지정해야 합니다colCount어쨌든.


옵션에 대한 좀 더 자세한 설명:

acceptBadUels=부울(기본값=N)

이 옵션은 잘못된 UEL(예: 너무 길음)이 발생했을 때 진행 방법을 지정합니다. 으로 설정된 경우N, 읽기가 중지되고 오류가 표시됩니다. 으로 설정된 경우Y, 유효한 UEL이 구성되고 읽기가 계속됩니다.

autoCol=문자열

각 열에 대한 자동 UEL을 생성합니다. autoCol 문자열은 열 레이블 번호의 접두어로 사용됩니다. 이 옵션은 머리글 행 사용을 재정의합니다. 단, 헤더 행이 있는 경우에는 활성화하여 해당 행을 건너뛰어야 합니다.useHeader. 이 옵션은 다음에서 설명됩니다.예 3.

autoRow=문자열

각 행에 대해 자동 UEL을 생성합니다. autoRow 문자열은 행 레이블 번호의 접두어로 사용됩니다. 생성된 고유 요소는 다른 요소를 오른쪽으로 이동하는 첫 번째 인덱스 위치에 사용됩니다. 사용autoRow고유한 요소로 사용할 수 있는 레이블이 없을 때 유용할 수 있지만 고유한 행 레이블이 없는 중복 항목이 될 수 있는 항목을 저장하는 데도 도움이 될 수 있습니다. 이 옵션은 다음에서 설명됩니다.예 3.

checkDate=부울(기본값=N)

슬롯 커뮤니티 파일이 GDX 파일보다 최신인 경우에만 GDX 파일을 작성하여 다음이 포함된 모델을 실행할 때 리소스를 절약하세요.슬롯 커뮤니티여러 번 호출하세요. 이 옵션은 다음에서 설명됩니다.예 5.

colCount=정수

입력 파일의 열 수. 헤더 행이 없는 경우 이 매개변수는 필수입니다.슬롯 커뮤니티머리글 행의 열 수를 결정합니다. 이 옵션은 다음에서 설명됩니다.예 3. 참고하세요마지막콜상수는 다음에 사용할 수 없습니다.colCount옵션.

decimalSep= [마침표, 쉼표] (기본값=마침표)

소수 구분 기호를 지정하세요. 소수점은 일반적으로 마침표이지만 이 매개변수에서는 쉼표를 소수점 구분 기호로 사용할 수도 있습니다. 인식되는 특수 값은 다음과 같습니다.Eps, NA관련.해당 사항 없음, 정보, 사실입니다, 거짓, 없음, 그리고Undef(대소문자를 구분하지 않음). 유효한 숫자로 인식되지 않는 문자열은 다음과 같이 저장됩니다.Undef. 이 옵션은 다음에서 설명됩니다.예 2그리고예 6(예를 들어 특수 값 읽기에 집중).

fieldSep= [쉼표, 세미콜론, 탭] (기본값=쉼표)

필드 구분자를 지정하세요. 필드는 일반적으로 쉼표로 구분되지만 이 매개변수를 사용하면 몇 가지 추가 선택이 가능합니다. 탭을 구분 기호로 사용하는 것은 피해야 합니다. 왜냐하면 텍스트 편집기는 탭을 처리할 때 다르게 작동하기 때문입니다. 예를 들어 %system.tab%를 사용하여 GAMS Studio에서 탭을 명시적으로 지정해야 합니다.

$onEcho > tabSeparated.슬롯 커뮤니티
미국%system.tab%100
GER%system.tab%70
$offEcho

$call csv2gdx tabSeparated.슬롯 커뮤니티 id=x fieldSep=tab 인덱스=1 colCount=2 값=lastCol

이 옵션은 다음에서 설명됩니다.예 2그리고예 3예를 들어.

id=문자열

슬롯 커뮤니티 파일의 기호에 대한 식별자. 추가 기호,딤1, 딤2, ... 기호 ID의 도메인 세트에 대한 슬롯 커뮤니티 파일에 자동으로 추가됩니다. 실행 중슬롯 커뮤니티식별자를 지정하지 않으면 실패합니다.

색인=열 목록

UEL을 가져올 열을 식별하십시오. 열은 쉼표로 구분된 정수 목록으로 표시됩니다. 예를 들어색인=1,2,3,4관련.색인=(1,2,3,4); 이 경우 표기법1..4허용됩니다. 대괄호는 Windows 시스템에서만 사용할 수 있습니다.색인옵션은 모든 예에서 사용됩니다.

출력=파일 이름(기본값=<슬롯 커뮤니티파일 이름>.gdx)

선택적 출력 파일 이름. 출력 파일이 지정되지 않은 경우,슬롯 커뮤니티입력 파일 이름을 사용하고 파일 확장자를 .슬롯 커뮤니티로 변경합니다. 경로를 지정하지 않으면 출력 파일이 현재 디렉터리에 생성됩니다. 이 옵션은 다음에서 설명됩니다.예 2예를 들어.

비밀번호=문자열

암호화된 입력 파일의 비밀번호. 사용ENDECRYPT파일을 암호화합니다. 이 옵션은 다음에서 설명됩니다.예 7.

storeZero=부울(기본값=N)

0 값이 무시되거나 다음과 같이 기록되는지 표시Eps; 빈 필드는 항상 무시됩니다. 이 옵션은 다음에서 설명됩니다.예 6.

텍스트=정수

세트를 읽을 때 설명 텍스트를 얻을 열을 지정하십시오. 예를 들어텍스트=5. 이 옵션은 다음에서 설명됩니다.예 9.

추적=정수(기본값=1)

로그에 기록되는 정보의 양을 제어합니다. 값이 높을수록 더 많은 출력이 생성됩니다. 유효한 범위는0..3. 설정추적=0로그에 정보를 기록하는 것을 방지합니다. 이 기능은 다음에서 설명됩니다.예 6.

useHeader=부울(기본값=N)

첫 번째 행이 헤더 행인지 표시합니다. 값 옵션 내에 지정된 열의 머리글 행에 있는 필드는 UEL로 사용됩니다. 헤더 행은 필요하지 않거나를 사용할 때 무시되어야 합니다.colCount또는autoCol옵션. 사용하는 동안 기존 헤더 행 하나를 건너뛰려면autoCol, 활성화useHeader. 이 옵션은 다음에서 설명됩니다.예 1그리고예 2예를 들어.

=정수

값을 가져올 열을 지정하십시오. 예를 들어값=5. 이 옵션은 다음에서 설명됩니다.예 2.

valueDim=부울(기본값=N)

값 열이 하나만 있는 경우에도 값에 대한 추가 차원이 매개변수에 추가되는지 여부를 나타냅니다. 값 열이 없으면 무시됩니다. 이 기능은 다음에서 설명됩니다.예 2.

=열 목록

값을 가져올 열을 지정하십시오. 값에 대한 열 목록을 사용하는 경우 및useHeader활성화되면 열의 첫 번째 행에 있는 각 필드가 UEL로 사용되어 해당 열의 값을 식별합니다. 또한 참조하세요useHeader그리고autoCol아래. 열의 개수를 알 수 없는 경우 기호 상수마지막콜유용할 수 있습니다:값=2..lastCol. 이 옵션은 다음에서 설명됩니다.예 1그리고예 5예를 들어.


개선 사항 및 제한 사항

발전

  • 슬롯 커뮤니티사용자는 추가 전처리를 수행하지 않고 테이블 문을 사용할 수 없는 슬롯 커뮤니티 데이터를 읽을 수 있습니다. 세미콜론이나 탭으로 구분된 데이터 또는 쉼표로 구분된 소수의 경우.
  • 일반적으로,슬롯 커뮤니티GAMS 내부 테이블 문에 비해 성능이 매우 뛰어난 도구입니다.

제한사항

  • 데이터를 읽는 동안 일부 행을 건너뛰고 싶다고 가정해 보겠습니다. 예를 들어, 슬롯 커뮤니티 파일의 특정 행에 도메인 세트나 매개변수에 저장하고 싶지 않은 일부 참조 정보가 포함되어 있는 경우입니다. 그러나 행 건너뛰기는로 수행할 수 없습니다.슬롯 커뮤니티.
  • 헤더가 없고 길이를 알 수 없는 다양한 행 길이가 있는 슬롯 커뮤니티 파일이 있을 수 있습니다. 이후슬롯 커뮤니티머리글 행을 기준으로 하거나 다음을 설정하여 열 수를 결정합니다.colCount사전 옵션,슬롯 커뮤니티잘못된 결과를 반환하거나 실행이 중단될 수 있습니다.
  • 슬롯 커뮤니티 파일에서 여러 매개변수를 읽는 것은 파일 내에서 직접 수행될 수 없습니다.슬롯 커뮤니티전화. 데이터는 나중에 설명된 대로 분할되어야 합니다.예 4.
  • 슬롯 커뮤니티(인용) 필드 내에 줄 바꿈이 포함된 슬롯 커뮤니티 파일을 읽을 수 없습니다. "인용된 필드가 닫는 따옴표로 끝나지 않았습니다"라는 오류 메시지가 표시되거나 따옴표가 없는 필드에 대한 결과가 올바르지 않을 수 있습니다. 필드 내용이 줄바꿈으로 잘리기 때문입니다.


시작하기

기본 기능을 소개합니다슬롯 커뮤니티몇 가지 간단한 예에 대해 설명합니다. 많은 슬롯 커뮤니티 파일은 테이블 문을 사용하여 GAMS 내에서 직접 읽을 수 있지만 다음에서 사용할 수 있는 다양한 기능은슬롯 커뮤니티사용자가 테이블 명령문을 사용할 수 없는 슬롯 커뮤니티 파일을 읽을 수 있도록 활성화합니다. 세미콜론으로 구분된 데이터가 있는 파일을 읽거나 소수점이 마침표 대신 쉼표로 구분된 경우.


예 1 - CSV2GDX로 슬롯 커뮤니티 파일 읽기

이 컬렉션의 첫 번째 예는 다음의 주요 명령을 보여줍니다.슬롯 커뮤니티. 예를 들어 모델의 테이블 문을 고려해보세요.[trn스포츠]GAMS 모델 라이브러리에서:

테이블 d(i,j) '거리(천 마일)'
              뉴욕 시카고 토피카
   시애틀 2.5 1.7 1.8
   샌디에고 2.5 1.8 1.4;

데이터는 다음과 같이 distance.슬롯 커뮤니티에 저장될 수 있습니다:

,뉴욕,시카고,토피카
시애틀,2.5,1.7,1.8
샌디에이고,2.5,1.8,1.4

우선,슬롯 커뮤니티42897_42982

csv2gdx distance.슬롯 커뮤니티 id=d index=1 값=2..lastCol useHeader=y

슬롯 커뮤니티하나의 단일 매개변수를 생성d및 입력 파일의 두 도메인 세트. 슬롯 커뮤니티 파일의 매개변수 이름은id옵션, 이 매개변수에 대한 도메인 세트는 다음과 같이 라벨이 지정됩니다.딤1그리고딤2자동으로. 열 번호 1은 내에 설정된 첫 번째 도메인으로 지정됩니다.색인옵션.옵션은 열 번호를 지정하는 데 사용됩니다.2,3,4데이터 값을 포함하고 있습니다. 다음을 활성화하여useHeader옵션, 내에 지정된 열의 첫 번째 행 필드옵션은 두 번째 도메인 세트로 처리됩니다. 열의 개수를 미리 알 수 없는 경우에는 다음을 사용할 수 있습니다.마지막 콜상수또는색인옵션.

GAMS Studio 내부에 표시된 매개변수 d


Dim1 설정(첫 번째 열의 UEL 포함)


Dim2 설정(헤더 행의 UEL 포함)


그러나 모델 trnsport에 대한 세트 및 매개변수 선언을 완료하려면 distance.슬롯 커뮤니티에서 데이터를 로드해야 합니다:

설정
   나는 '통조림 식물'
   j '시장';

$슬롯 커뮤니티거리 내.슬롯 커뮤니티
$load i = Dim1
$로드 j = Dim2

매개변수 d(i,j) '거리(천 마일)';
$로드 d
$gdxIn
i, j, d를 표시합니다.

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티2]참고용.


예 2 - 세미콜론으로 구분된 데이터 읽기

이 예에서는 이전 예의 거리가 목록으로 저장됩니다. 우리는 도시와 마일 측정값이 포함된 열을 읽고 싶습니다. 필드는 세미콜론으로 구분되고 소수점은 쉼표로 구분됩니다. 설명된 대로텍스트 파일과의 데이터 교환슬롯 커뮤니티 파일은 다음으로 사전 처리되어야 합니다.POSIX쉼표를 점으로, 세미콜론을 쉼표로 대체하여 간단한 테이블 명령문을 사용하여 데이터를 직접 읽을 수 있는 도구입니다.

i;j;마일
시애틀, 뉴욕, 2,5
시애틀;시카고;1,7
시애틀;토피카;1,8
샌디에고;뉴욕;2,5
샌디에고;시카고;1,8
샌디에고;토피카;1,4

데이터는 다음을 추가하여 distanceOut.슬롯 커뮤니티로 저장됩니다.출력파일 옵션. 내에 필드와 소수 구분 기호를 지정할 수 있습니다.fieldSep그리고decimalSep옵션. 읽어올 매개변수에 대한 도메인 세트는 다음과 같이 선언됩니다.색인=1,2.

csv2gdx distance.슬롯 커뮤니티 출력=distanceOut.gdx id=d fieldSep=semiColon 소수Sep=쉼표 인덱스=1,2 useHeader=y 값=3

슬롯 커뮤니티 파일에서 데이터를 로드하려면 다음 명령을 실행하세요.이전 예. 그러나 참고하세요딤2이번에는 헤더 행의 UEL이 포함되지 않지만,에 지정된 두 번째 열의 고유 요소는색인옵션. 옵션useHeader은 값을 읽을 때 건너뛸 헤더 행이 있음을 나타내기 위해 활성화됩니다. 또한 기호는d47126_47238dmod, 예: 거리에 대한 다양한 측정 단위가 나중에 관련되어 계산되어야 하는 경우(예: 킬로미터).

이것은 옵션을 추가하여 수행할 수 있습니다.valueDim:

csv2gdx distance.슬롯 커뮤니티 출력=distanceOut.gdx id=d fieldSep=semiColondecimalSep=쉼표 인덱스=1,2 useHeader=y 값=3 valueDim=y

이 옵션은 3차원을 추가합니다d. 이제 모델 내부의 값을 계산하여 거리를 킬로미터 단위로 추가하려고 합니다.

m '측정 단위' / 마일, km / 설정;

매개변수 dmod(i,j,m);

$gdxIn distanceOut.슬롯 커뮤니티
$로드 dmod = d
$gdxIn
디스플레이 dmod;

dmod(i,j,'km') = 1.852*dmod(i,j,'마일');
dmod 표시;

매개변수d (valueDim비활성화):

-- 36 PARAMETER d 거리(천 마일)

             뉴욕 시카고 토피카

시애틀 2.500 1.700 1.800
샌디에고 2.500 1.800 1.400

매개변수dmod관련.dvalueDim추가 측정을 계산하기 전에 활성화됨:

---- 49 매개변수 dmod 

                         마일

시애틀.뉴욕 2.500
시애틀.시카고 1.700
시애틀 .topeka 1.800
샌디에고.뉴욕 2.500
샌디에고.시카고 1.800
san-diego.topeka 1.400

매개변수dmod함께valueDimGAMS 모델 내에서 거리를 킬로미터 단위로 계산한 후 활성화됨:

-- 52 매개변수 dmod

                         마일 킬로미터

시애틀.뉴욕 2.500 4.630
시애틀.시카고 1.700 3.148
시애틀 .topeka 1.800 3.334
샌디에고.뉴욕 2.500 4.630
샌디에고.시카고 1.800 3.334
san-diego.topeka 1.400 2.593

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티3]참고용.


예 3 - 누락된 라벨 및 중복 항목 처리

라벨 누락

EUCData.슬롯 커뮤니티 파일에는 [TSPLib]에서 berlin52.tsp의 처음 9개 도시의 추출된 유클리드 좌표가 포함되어 있습니다(http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/). 예를 들어 최적의 여행 세일즈맨 투어를 찾기 위해 데이터를 가져와 GAMS 내에서 완전한 거리 매트릭스를 계산할 수 있습니다.

565.0;575.0
25.0;185.0
345.0;750.0
945.0;685.0
845.0;655.0
880.0;660.0
25.0;230.0
525.0;1000.0
580.0;1175.0

헤더 행도 없고 도시 좌표에 대한 도메인 세트 역할을 하는 라벨이 있는 열도 없습니다. 그러나슬롯 커뮤니티내부에 지정된 사용자 정의 접두사에 오름차순 숫자를 추가하여 열과 행에 대한 UEL을 자동으로 생성합니다.autoCol그리고autoRow옵션. 또한 헤더가 누락되었기 때문에 파일의 열 수를 수동으로 결정하고 선언해야 합니다.colCount.

csv2gdx EUCData.슬롯 커뮤니티 id=coord fieldSep=semiColon autoCol=x autoRow=city colCount=2 값=1,2

행에는 다음과 같은 라벨이 지정됩니다.도시1...도시9, 다음 열:x1그리고x2.

GAMS Studio 내부에 표시된 매개변수 좌표

슬롯 커뮤니티 파일에서 매개변수와 세트를 로드하여 완전한 거리 행렬을 계산하세요. 세트딤1UEL을 포함합니다도시1...도시9세트용i도시의딤2은 요소를 포함하는 축/좌표 세트입니다.x1그리고x2x축과 y축을 나타냅니다.

설정
   나는 '도시'
   축 'x1 및 x2 축';

$gdxIn EUCData.슬롯 커뮤니티
$load i = Dim1
$로드 축 = Dim2

매개변수 coord(i,axes) '도시 i의 좌표';
$로드 좌표
$gdxIn
좌표 표시;

display 문은 다음과 같은 출력을 생성합니다:

-- 43 PARAMETER 도시 i의 좌표 좌표

               x1 x2

도시1 565.000 575.000
도시2 25.000 185.000
도시3 345.000 750.000
도시4 945.000 685.000
도시5 845.000 655.000
도시6 880.000 660.000
도시7 25.000 230.000
도시8 525.000 1000.000
도시9 580.000 1175.000

이제 완전한 거리 행렬 계산을 쉽게 진행할 수 있습니다.

별칭 (i,j);

매개변수 c(i,j) '도시 i와 j 사이의 유클리드 거리';
c(i,j) = eDist(coord(i,"x1") - coord(j,"x1"),coord(i,"x2") - coord(j,"x2"));


중복

이전 예에서는autoCol그리고autoRow옵션은 우리가 즉시 도시 집합을 선언했기 때문에 추가적인 이점을 가졌습니다. 그러나 이러한 옵션의 주요 장점/목적 중 하나는 중복 키가 있는 행을 읽을 때 오류 메시지나 데이터 손실을 방지하는 것입니다.

입력 파일 Duplicates.슬롯 커뮤니티를 고려하십시오:

빨간색,빨간색,1
빨간색,빨간색,2
빨간색, 녹색, 3
파란색, 파란색,4

처음 두 행의 중복 키를 확인하세요. 를 사용하여autoRow매개변수슬롯 커뮤니티호출 고유 라벨이 각 행에 추가됩니다. 이렇게 하면 GAMS 프로그램이 중복 키가 있는 모든 데이터를 저장하고 더 나은 오류 메시지에 대비할 수 있습니다.

csv2gdx Duplicates.슬롯 커뮤니티 id=데이터 인덱스=1,2 값=3 colCount=3 autoRow=row

지정된 '행' 접두사에 오름차순 숫자가 추가됩니다.

GAMS Studio 내부에 표시된 매개변수 데이터

다음 라인을 실행하여 데이터를 세트 및 매개변수로 쉽게 로드할 수 있습니다:

설정
   행 'autoRow에 의해 생성된 UEL'
   color '색상 세트';

$슬롯 커뮤니티중복.슬롯 커뮤니티
$로드 행 = Dim1
$로드 색상 = Dim2
$loadm 색상 = Dim3

매개변수 데이터(행,색상,색상);
$로드 데이터
$gdxIn
행, 색상, 데이터 표시;

의 사용법을 참고하세요$loadm모든 색상을 하나의 색상 세트로 병합하는 명령입니다. 표시 문은 목록 파일에 다음 출력을 생성합니다.

---- autoRow에 의해 생성된 SET 행 UEL 77개

행1, 행2, 행3, 행4

---- 77 SET 컬러 세트 색상

빨간색, 파란색, 녹색

---- 77개 매개변수 데이터

                  빨간색 파란색 녹색

row1.red 1.000
row2.red 2.000
row3.red 3.000
row4.blue 4.000

전체 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티4]참고용.


예 4 - 단일 입력 파일에서 여러 매개변수 읽기

이 예는 단일 입력 파일의 데이터를 다른 매개변수로 읽는 방법을 보여줍니다. 그러나 이는를 사용하여 직접 수행할 수 없습니다.슬롯 커뮤니티도구, 이후슬롯 커뮤니티단일 매개변수에 씁니다(섹션 참조제한사항). 예를 들어, 에너지 공급업체는 발전소에서 일부 배전소까지 새로운 송전선을 건설할 계획입니다. 전송선에는 여러 단계가 있습니다. 읽어야 할 관련 데이터는 플랜트 및 스테이션 식별자, 특정 단계의 전송 라인당 용량 한계 및 관련 비용입니다. 데이터는 모두 단일 파일에 저장됩니다.

플랜트;스테이션;길이;최소캡;최대캡;단계;비용
p1;s1;100;50;100;1;1200
p1;s2;75;35;65;1;500
p1;s1;100;100;150;2;1800
p2;s1;150;50;100;1;1400
p2;s1;150;100;150;2;2000
p2;s1;150;150;200;3;2350
p2;s2;75;25;50;1;600
p2;s2;75;50;75;2;800
p3;s1;80;40;100;1;1050

networkData.슬롯 커뮤니티 읽기슬롯 커뮤니티전화로:

csv2gdx networkData.슬롯 커뮤니티 id=dataPar useHeader=y fieldSep=semiColon 인덱스=1,2,6 값=4,5,7

6번째 열에 저장된 단계도 도메인 집합이지만 세 번째 열의 전송 라인 길이는 중요하지 않습니다. 이후슬롯 커뮤니티단일 매개변수에 기록합니다. 나중에 데이터를 분할해야 합니다.최소캡, 최대캡그리고비용예를 들어:

매개변수
   데이터파
   minCap(공장,역,단계)
   maxCap(플랜트,스테이션,스테이지)
   비용(플랜트,스테이션,스테이지);

$gdxIn networkData.슬롯 커뮤니티
$로드 플랜트 = Dim1
$로드 스테이션 = Dim2
$로드 단계 = Dim3
$load dataPar
$gdxIn

minCap(플랜트,스테이션,단계) = dataPar(플랜트,스테이션,단계,'minCap');
maxCap(플랜트,스테이션,단계) = dataPar(플랜트,스테이션,단계,'maxCap');
비용(공장,스테이션,단계) = dataPar(공장,스테이션,단계,'비용');

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티5]참고용.


예 5 - 세계 은행 데이터 카탈로그에서 경제 데이터 읽기

이 예는 [세계 은행 데이터 카탈로그]에서 실제 슬롯 커뮤니티 데이터를 읽는 방법을 보여줍니다. (https://datacatalog.worldbank.org/). 시계열 데이터를 읽고 싶다고 가정해 보겠습니다. GDP 성장률. 데이터는 다음과 같이 구성됩니다(표시를 위해 행이 단축됨).

"국가 이름","국가 코드","표시 이름","표시 코드","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","200 9","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020",
"동아시아 및 태평양", "EAA", "GDP 성장, 2010년 지속 USD","NYGDPMKTPKDZ","","","","","","","","","","","","","","","","","6.50356 4548","6.327469798","6.449458613","6.181694329","6.065321782","5.964012702",

우리는 "국가 코드", "표시 이름" 및 "표시 코드"에 관심이 없습니다. 국가별 연간 GDP 비율은 고유하므로,슬롯 커뮤니티열 수가 많아도 호출은 매우 쉽습니다. 다음에는 몇 가지 제한사항이 있습니다.슬롯 커뮤니티, 섹션에서 논의됨개선 사항 및 제한 사항. 데이터의 빈 필드는 항상 무시되므로 필드 구분 기호가 올바르게 설정되면 전혀 문제가 발생하지 않습니다.

csv2gdx GDPData.슬롯 커뮤니티 id=GDPG 지수=1 값=5..lastCol useHeader=y checkDate=y

옵션checkDate모델을 여러 번 실행하는 경우 리소스를 절약하기 위해 활성화됩니다. GDX 파일은 슬롯 커뮤니티 파일이 GDX 파일보다 최신인 경우에만 기록되기 때문입니다. GDX 파일에서 세트와 매개변수를 로드하려면 다음 명령어를 실행하세요.

국가, 연도 설정;
$gdxIn GDPData.슬롯 커뮤니티
$로드 국가 = Dim1
$로드 연도 = Dim2

매개변수 GDPRate(국가, 연도);
$load GDP비율
$gdxIn
국가, 연도, GDPRate를 표시합니다.

display 문은 목록 파일에 다음 출력을 생성합니다. 분명히 큰따옴표는 값 열의 필드에서 제거될 뿐만 아니라 인덱스 열에서도 제거됩니다.

---- 12개 세트 국가

동아시아 및 태평양, 유럽 및 중앙아시아, 라틴 아메리카 및 카리브해 지역, 중동 및 북아프리카, 남아시아, 사하라 이남 아프리카, 세계(WBG 회원)
아프가니스탄, 알바니아, 알제리, 앙골라, 아르헨티나, 아르메니아, 아제르바이잔

---- 12 세트 년

2015년, 2016년, 2017년, 2018년, 2019년, 2020년

---- 12개 매개변수 GDPR

                                       2015년 2016년 2017년 2018년 2019년 2020년

동아시아 및 태평양 6.504 6.327 6.449 6.182 6.065 5.964
유럽 및 중앙아시아 0.963 1.672 3.782 2.901 3.029 2.969
라틴 아메리카 및 카리브해 지역 -0.562 -1.526 0.902 2.044 2.586 2.701

목록은 표시를 위해 단축되었습니다. 그러나 1999년부터 2014년까지의 데이터는 없습니다.

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티6]참고용.


확장 사용을 위한 추가 예

이 섹션의 예에서는 몇 가지 특별한 기능에 대해 설명합니다. 압축 및 암호화된 파일 읽기 또는 읽기와 같은 일부 주제는 이전 섹션에서 이미 간략하게 언급되었습니다.슬롯 커뮤니티외부 파일의 옵션.

예 6 - 특수 값 읽기

특수 값이 어떻게 해석되는지 설명하려면 다음 데이터를 고려하십시오.

하나,둘,셋,넷,다섯,여섯
빨간색,빨간색,,Undef,'3.3',빨간색
빨간색,빨간색,"4.4",5.5,Eps,녹색
"빨간색",'녹색',7.7e+02,8.8°,-Inf,파란색
파란색, 파란색, 10,0, NA, 보라색
갈색, 파란색, 참, 거짓, 해당 없음, 녹색
검정색, 빨간색, 없음, Null, "True", 파란색

전화 중슬롯 커뮤니티데이터를 읽고 슬롯 커뮤니티에 쓰려면:

csv2gdx data.슬롯 커뮤니티 id=A 인덱스=1,2,6 값=3..5 useHeader=y storeZero=y 추적=3

GAMS 로그는 정의되지 않은 값이 세 번 발생했다고 보고합니다. 옵션을 설정하여 로그에 기록되는 정보의 양이 늘어났습니다.추적=3.

--- 호출 csv2gdx SpecialValues.슬롯 커뮤니티 id=A 인덱스=1,2,6 값=3..5 useHeader=y storeZero=y 추적=3
CSV2GDX 25.2.0 r67638 ALFA 8월 15일 출시 WEI x86 64bit/MS Windows 
헤더 활성화됨, 열 수 = 6
  1: 하나
  2: 2
  3: 세
  4: 네
  5: 다섯
  6: 6
  2: |빨간색|, |빨간색|, ||, |Undef|, |'3.3'|, |빨간색|
  3: |빨간색|, |빨간색|, |4.4|, |5.5|, |Eps|, |녹색|
  4: |빨간색|, |'녹색'|, |7.7e+02|, |8.8°|, |-Inf|, |파란색|
  5: |파란색|, |파란색|, |10|, |0|, |NA|, |보라색|
Undef 횟수 = 3, 오류 없음, CSV2GDX 시간 = 157ms

에서 언급한 바와 같이decimalSep, 슬롯 커뮤니티알 수 없는 특수 문자로 인해 문자열 8.8°에서 숫자 8.8을 인식하지 못하는 반면, 7.7e+02는 당연히 숫자로 해석됩니다. 값이나 인덱스 열에 따옴표가 있는지 주의하세요. 큰따옴표로 묶인 숫자 4.4는 숫자로 해석되는 반면 '3.3'은 숫자로 해석되지 않습니다(로그에서 볼 수 있듯이 큰따옴표는 제거되고 작은따옴표는 그대로 유지됩니다). 첫 번째 열에서 문자열 red를 묶는 큰따옴표는 제거되는 반면, 문자열 green을 묶는 두 번째 열의 작은따옴표는 제거되지 않습니다. 0 값은 다음과 같이 저장됩니다.Eps설정으로storeZero=y. 일부 값이 다음과 같이 저장되었음에도 불구하고 오류가 보고되지 않았습니다.Undef나중에 모델에 문제가 발생할 수 있습니다(사용$onUndf정의되지 않은 값으로 매개변수 로드를 활성화합니다.
부울그리고거짓마지막 두 번째 행의 숫자는 1 resp로 표시됩니다. GAMS 내에서는 0입니다. 특별한 가치없음그리고0으로 변환됩니다. 이후storeZore이 예에서는 활성화되어 있으며 값은에 대해 표시됩니다.거짓, 없음그리고isEps.

GAMS Studio 내부에 표시된 매개변수 A

매개변수 A를 A(color,color,color,number)로 선언한다고 가정합니다. 다음과 같이 진행할 수 있습니다.

색상, 숫자 설정;
$gdxIn 데이터.슬롯 커뮤니티
$로드 색상 = Dim1
$loadm 색상 = Dim2
$loadm 색상 = Dim3
$로드 번호 = Dim4

매개변수 A(색상,색상,색상,숫자);
$onUndf
$로드 A
$offUndf
$gdxIn
디스플레이 A;

정의되지 않은 값 로드는 $onUndf를 추가하여 활성화됩니다. 이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티7]참고용.


예 7 - 압축되고 암호화된 입력 파일 읽기

압축된 입력 파일 읽기는 다음에서 지원됩니다.슬롯 커뮤니티. gbin 하위 디렉터리에 있는 gzip 프로그램 또는ENDECRYPT64740_64841

gzip 압축Me.슬롯 커뮤니티 -c > 압축파일.슬롯 커뮤니티gz

Gzip은 원본 파일을 변경하지 않고 유지하기 위해 -c를 추가하여 표준 출력에 기록합니다. 그런 다음 출력은pressedFile.슬롯 커뮤니티gz로 리디렉션됩니다. 압축 파일을 읽으려면를 호출하세요.슬롯 커뮤니티압축되지 않은 파일을 처리하는 것과 동일한 옵션을 사용합니다.

csv2gdx 압축파일.슬롯 커뮤니티gz 출력=unCompressedGzipFile.gdx id=d 인덱스=1 useHeader=y 값=2..lastCol

이 예의 데이터는 다음에서 가져왔습니다.예 1.

Endecrypt의 주요 목적은 파일을 암호화하고 해독하는 것이지만 파일을 압축하기도 합니다. Endecrypt로 파일을 압축하려면 비밀번호 파일을 지정하지 마세요.

cat 압축Me.슬롯 커뮤니티 | endecrypt -W 압축파일.슬롯 커뮤니티

-W 옵션은 표준 입력을 암호화하고 압축파일.슬롯 커뮤니티에 씁니다. 비밀번호 파일이 없어 암호화는 되지 않지만 -W 옵션을 설정해야 합니다. 다음을 사용하여 압축 파일을 읽을 수 있습니다.슬롯 커뮤니티:

csv2gdx 압축파일.슬롯 커뮤니티 출력=unCompressedEndycryptFile.gdx id=d 인덱스=1 useHeader=y 값=2..lastCol

더 이상 추가된 파일 확장자가 없음을 참고하세요.

비밀번호 파일(첫 번째 줄에 비밀번호 포함)을 추가하여 Endecrypt는 입력 파일을 암호화하고 압축합니다.

cat 압축Me.슬롯 커뮤니티 | endecrypt -W 압축EncryptedFile.슬롯 커뮤니티 비밀번호파일.txt

비밀번호 파일이 삭제됩니다. 다음 명령을 실행하여 압축되고 암호화된 파일을 읽습니다.슬롯 커뮤니티:

csv2gdxpressedEncryptedFile.슬롯 커뮤니티 출력=unCompressedDecryptedFile.gdx 비밀번호=Anton id=d 인덱스=1 useHeader=y 값=2..lastCol

비밀번호 옵션이 추가되었습니다. 비밀번호는 비밀번호 파일이 아닌 옵션(이 경우 "Anton") 내에서 직접 설정해야 합니다. 참고하세요슬롯 커뮤니티.gz, .7z 등의 압축 파일을 지원하지 않습니다!

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티8]참고용.


예 8 - 외부 파일에서 옵션 읽기

이 예는 섹션에서 이미 언급한 것처럼 외부 텍스트 파일에서 옵션을 읽는 방법을 보여줍니다.파일 이름. 시작하기의 파일 distance.슬롯 커뮤니티예 1다음으로 처리됩니다슬롯 커뮤니티howToRead.txt라는 외부 텍스트 파일에서 옵션을 읽는 동안.

csv2gdx 거리.슬롯 커뮤니티 @howToRead.txt

Call 문 내에서 슬롯 커뮤니티 파일 이름과 지침 파일 이름의 순서를 바꾸면 오류가 발생합니다. 다음 옵션을 포함하는 지침 파일의 앞에 있는 @(at 기호)를 참고하세요.

* 이 줄은 주석으로 해석됩니다.
* 이 파일은 CSV2GDX를 사용하여 distance.슬롯 커뮤니티를 읽는 옵션을 지정합니다.

아이디 = 디
fieldSep = 세미콜론
소수점 = 쉼표
인덱스 = 1
useHeader = y
값 = 2..lastCol

이 예는 GAMS 데이터 유틸리티 라이브러리의 일부이기도 합니다. 모델 참조[슬롯 커뮤니티9]참고용.


예 9 - 설명 텍스트가 포함된 집합 요소 읽기

이 예에서는 다음을 사용하여 세트 요소의 설명 텍스트를 읽는 방법을 보여줍니다.슬롯 커뮤니티옵션텍스트.

입력 파일 data.슬롯 커뮤니티를 고려하십시오:

a1,b1,a1.b1,10의 설명 텍스트
a1,b2,a1.b2,20의 설명 텍스트
a2,b1,a2.b1,30의 설명 텍스트
a2,b2,a2.b2,40의 설명 텍스트

설정 요소는 첫 번째와 두 번째 열에 저장되고 설명 텍스트는 세 번째 열에 저장되며 일부 값을 포함하는 네 번째 열이 있습니다. 설명 텍스트가 포함된 2차원 세트를 읽고 싶다고 가정해 보겠습니다. 기본적으로,슬롯 커뮤니티설명 텍스트를 읽지 않습니다. 즉, 다음 명령을 실행합니다.

csv2gdx data.슬롯 커뮤니티 id=abOnlyUELs 인덱스=1,2 colCount=4

슬롯 커뮤니티2차원 세트를 포함하는 슬롯 커뮤니티 파일을 생성abOnlyUELs설명 텍스트 없음(말할 필요도 없이 설명 텍스트를 가져올 열을 지정하지 않았습니다). index 옵션 내에 세 번째 열을 지정하면(예: index=1..3) 결과는 3차원 집합이 됩니다(설명 텍스트도 없음). 를 사용하여옵션은 데이터 유형이 집합이 아닌 매개변수이므로 적합하지 않습니다(추가로,슬롯 커뮤니티숫자 데이터가 예상되며 잠재적으로 정의되지 않은 값이 발생할 수 있습니다). 안에 3번째 열을 지정하면 설명 텍스트를 쉽게 읽을 수 있습니다.텍스트옵션:

csv2gdx data.슬롯 커뮤니티 id=abWithExpText 인덱스=1,2 텍스트=3 colCount=4

그림은 세트를 보여줍니다.abOnlyUELs설명 텍스트와 세트가 없는 왼쪽에abWithExpText오른쪽:

GAMS Studio 내에 표시되는 abOnlyUELs 및 abWithExpText 설정

참고하세요텍스트그리고옵션은 동시에 사용할 수 없습니다(대신 여러 개 사용슬롯 커뮤니티단일 데이터 세트에서 설명 텍스트와 매개변수가 포함된 세트 요소를 읽으려는 경우 시나리오를 호출합니다.